對(duì)于一個(gè)有登錄限制(權(quán)限限制)的網(wǎng)站,用戶輸入身份驗(yàn)證信息以后,驗(yàn)證成功后跳轉(zhuǎn)到登錄前的頁(yè)面是一項(xiàng)很人性化的功能。那么獲取登錄前的頁(yè)面地址就很關(guān)鍵,今天在做一個(gè)yii2項(xiàng)目的登錄調(diào)試時(shí)發(fā)現(xiàn)了一些很有意思的問(wèn)題,記錄下來(lái)。
1,場(chǎng)景描述
網(wǎng)站SiteA上的頁(yè)面Page2需要登錄后才能查看,Page2的鏈接放在頁(yè)面Page1的一個(gè)按鈕Button上,Page1在登錄前后都是可以訪問(wèn)的,SiteA只提供了微信掃碼登錄的入口。
2,功能需求
假定訪客User已經(jīng)在SiteA上注冊(cè)過(guò),但當(dāng)前未登錄。User在瀏覽Page1時(shí),如果點(diǎn)擊頁(yè)面內(nèi)的Button,則會(huì)來(lái)到掃碼登錄頁(yè)。用微信掃碼登錄成功后則會(huì)跳轉(zhuǎn)至Page2。
3,跳轉(zhuǎn)頁(yè)面的代碼
在微信授權(quán)后要回調(diào)的地址中設(shè)置好控制器controller和方法callback。
然后在callback方法中進(jìn)行用戶登錄后的邏輯編寫(xiě),如果登錄成功:
return $this->goBack();