laravel5.6與thinkphp3.2使用redis共享session的示例分析

這篇文章主要介紹laravel5.6與thinkphp3.2使用redis共享session的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元青山湖做網(wǎng)站,已為上家服務(wù),為青山湖各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

在實(shí)際的項(xiàng)目中,歷史項(xiàng)目使用thinkphp3.2開發(fā),現(xiàn)在需要更新功能,更新功能的部分,擬使用laravel5.6進(jìn)行開發(fā)。

問(wèn)題描述

其中需要解決幾個(gè)關(guān)鍵問(wèn)題,其中之一便是用戶認(rèn)證的問(wèn)題。即在系統(tǒng)1只登錄后,系統(tǒng)2中自動(dòng)識(shí)別其登錄信息。即本質(zhì)需要解決:laravel與thiniphp共享session的問(wèn)題。

方案設(shè)計(jì)

session采用redis進(jìn)行存儲(chǔ)。thinkphp與laravel共離訪問(wèn)redis,根據(jù)相同的cookie,自動(dòng)獲取存儲(chǔ)到redis中的認(rèn)證用戶信息。

解決方案

thinkphp開啟redis支持

thinkphp3.2并不沒有集成session的redis支持,此時(shí),我們使用php中的設(shè)置來(lái)開啟。在index.php中,我們加入以下兩行語(yǔ)句:

ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://redis:6379");
也可以將其加入到config.php配置文件中

此時(shí), thinkphp在進(jìn)行session存儲(chǔ)時(shí),將以PHPREDIS_SESSION做為前綴進(jìn)行存儲(chǔ)。

laravel開啟redis

laravel開啟redis的方法相對(duì)來(lái)講稍微復(fù)雜一些。具體信息,需要參考官方文檔使用composer來(lái)安裝Predis并進(jìn)行相關(guān)配置。

laravel獲取thinkphp的session

由于laravel完全棄用了PHP的內(nèi)置session。所以我們是沒有辦法能過(guò)$_SESSION來(lái)獲取到任何信息的(你甚至?xí)靡粋€(gè)變量未定義的錯(cuò)誤)。由于laravel的cookie進(jìn)行了加密處理。所以,我們也不能用laravel自帶的cookie來(lái)獲取cookie信息。

具體實(shí)現(xiàn)的思路為:
1 獲取原生cookie。
2 接拼PHPREDIS_SESSION組成key
3 使用redis直接獲取key中存的值

...
use Illuminate\Support\Facades\Redis;
...
    $cookie = $_COOKIE['PHPSESSID'];
    $session = Redis::get('PHPREDIS_SESSION:' . $cookie);

此$session即為thinkphp系統(tǒng)中的session值。

以上是“l(fā)aravel5.6與thinkphp3.2使用redis共享session的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:laravel5.6與thinkphp3.2使用redis共享session的示例分析
分享鏈接:http://muchs.cn/article20/pippco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App開發(fā)、網(wǎng)站策劃、網(wǎng)站建設(shè)、企業(yè)建站、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)