摘要:最近做自動(dòng)登錄功能,發(fā)現(xiàn)即使開啟了的自動(dòng)登錄配置功能,瀏覽器關(guān)閉后,再次打開瀏覽器還是處于非登錄狀態(tài)。查詢登錄源碼打印變量發(fā)現(xiàn)內(nèi)容沒有任何問題。復(fù)制代碼去其他控制器執(zhí)行也是毫無問題。
最近做Yii2自動(dòng)登錄功能,發(fā)現(xiàn)即使開啟了Yii2的自動(dòng)登錄配置功能,瀏覽器關(guān)閉后,再次打開瀏覽器還是處于非登錄狀態(tài)。
網(wǎng)上查詢資料基本沒有相同情況。
查詢登錄源碼:
protected function sendIdentityCookie($identity, $duration) { $cookie = new Cookie($this->identityCookie); $cookie->value = json_encode([ $identity->getId(), $identity->getAuthKey(), $duration, ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); $cookie->expire = time() + $duration; Yii::$app->getResponse()->getCookies()->add($cookie); }
打印cookie變量發(fā)現(xiàn)內(nèi)容沒有任何問題。復(fù)制代碼去其他控制器執(zhí)行也是毫無問題。
查看瀏覽器,Yii2設(shè)置的sessionID也是正常的,也就是cookie只是這里設(shè)置不成功。
既然,系統(tǒng)沒問題,瀏覽器沒問題,那么就是傳輸過程有問題。
后來終于發(fā)現(xiàn):原來在調(diào)用$model->login()登錄方法過后,我直接輸出json數(shù)據(jù)到瀏覽器,并且在后面有exit方法,直接阻止了控制器繼續(xù)執(zhí)行。
所以,yii2執(zhí)行到exit處就完了,導(dǎo)致頭信息header也沒有被傳輸?shù)綖g覽器。所以瀏覽器根本沒有收到php設(shè)置cookie的命令。
總結(jié):Yii2登錄或者需要設(shè)置cookie的控制器,千萬不要exit or die,直接使用if else去判斷,不要打斷執(zhí)行。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22532.html
摘要:系統(tǒng)從認(rèn)證中心得到校驗(yàn)成功的結(jié)果后,則可以認(rèn)為用戶已登錄。認(rèn)證中心發(fā)現(xiàn)用戶未登錄沒有,將用戶引導(dǎo)至登錄界面。用戶提交登錄信息到認(rèn)證中心。 簡(jiǎn)單登錄 登錄流程 首先讓我們分析一下一個(gè)簡(jiǎn)單的登錄是怎么實(shí)現(xiàn)的。 一個(gè)簡(jiǎn)單的登錄流程 用戶輸入url訪問站點(diǎn),接受用戶請(qǐng)求后判斷用戶是否已經(jīng)登錄,若未登錄則跳轉(zhuǎn)到登錄頁面 用戶訪問登錄頁面,填寫并提交登錄表單 web應(yīng)用對(duì)登錄表單進(jìn)行驗(yàn)證,若...
摘要:可是,我們的域名有這三個(gè)域名僅僅是不同的環(huán)境,因此,的跨域名訪問就引出來了。無論是一二級(jí)域名,和不同域名下的跨域,無非要達(dá)到兩點(diǎn)客戶端訪問同一個(gè)所有域名對(duì)應(yīng)的服務(wù)器訪問的的數(shù)據(jù)的位置必須一致。 關(guān)閉httponly引起的問題 場(chǎng)景1: 測(cè)試A:咦,為什么test環(huán)境登錄不了呢? 程序員:清緩存。 測(cè)試B:握草,dev也登錄不了。。。誰看看! 程序員:清緩存。 測(cè)試們:。。。唉 場(chǎng)景...
摘要:序言本文主要是對(duì)關(guān)于如何實(shí)現(xiàn)跨域的登錄的解析的改進(jìn),因?yàn)樵谀瞧恼轮形乙呀?jīng)寫出了登錄的基本實(shí)現(xiàn)過程,現(xiàn)在是進(jìn)一步優(yōu)化。實(shí)現(xiàn)永久登錄狀態(tài)。只要不點(diǎn)擊退出登錄,就一直保持著登錄狀態(tài)。存在時(shí),提交表單判斷修改的過期時(shí)間,設(shè)置到極大值。 序言 本文主要是對(duì)關(guān)于Yii2如何實(shí)現(xiàn)跨域的SSO登錄的解析的改進(jìn),因?yàn)樵谀瞧恼轮形乙呀?jīng)寫出了SSO登錄的基本實(shí)現(xiàn)過程,現(xiàn)在是進(jìn)一步優(yōu)化。主要優(yōu)化的部分有兩...
摘要:瀏覽器的同源策略把跨域請(qǐng)求都禁止了,但是頁面中的標(biāo)簽是例外,不受同源策略限制。的理念就是,與服務(wù)端約定好一個(gè)回調(diào)函數(shù)名,服務(wù)端接收到請(qǐng)求后,將返回一段,在這段代碼中調(diào)用了約定好的回調(diào)函數(shù),并且將數(shù)據(jù)作為參數(shù)進(jìn)行傳遞。我在做面試官的時(shí)候,曾經(jīng)問過很多朋友這個(gè)問題: Cookie 和 Session 有什么區(qū)別呢?大部分的面試者應(yīng)該都可以說上一兩句,比如:什么是 Cookie?什么是 Sessi...
摘要:這種情況通常發(fā)生在反向代理的時(shí)候,前端發(fā)起請(qǐng)求代理服務(wù)器,代理服務(wù)器發(fā)起請(qǐng)求到,這時(shí)候就容易導(dǎo)致域名不一致,請(qǐng)一定要注意這點(diǎn)。 寫在最前 前后端分離其實(shí)有兩類: 開發(fā)階段使用dev-server,生產(chǎn)階段是打包成靜態(tài)文件整個(gè)放入后端項(xiàng)目中。 開發(fā)階段使用dev-server,生產(chǎn)階段是打包成靜態(tài)文件放入單獨(dú)的靜態(tài)資源服務(wù)器中,如nginx。 這兩種方案最大的區(qū)別就是生產(chǎn)階段。由于第...
閱讀 3440·2023-04-25 18:14
閱讀 1538·2021-11-24 09:38
閱讀 3255·2021-09-22 14:59
閱讀 3070·2021-08-09 13:43
閱讀 2576·2019-08-30 15:54
閱讀 573·2019-08-30 13:06
閱讀 1555·2019-08-30 12:52
閱讀 2727·2019-08-30 11:13