對于一個有登錄限制(權(quán)限限制)的網(wǎng)站,用戶輸入身份驗證信息以后,驗證成功后跳轉(zhuǎn)到登錄前的頁面是一項很人性化的功能。那么獲取登錄前的頁面地址就很關(guān)鍵,今天在做一個yii2項目的登錄調(diào)試時發(fā)現(xiàn)了一些很有意思的問題,記錄下來。

1,場景描述

網(wǎng)站SiteA上的頁面Page2需要登錄后才能查看,Page2的鏈接放在頁面Page1的一個按鈕Button上,Page1在登錄前后都是可以訪問的,SiteA只提供了微信掃碼登錄的入口。

2,功能需求

假定訪客User已經(jīng)在SiteA上注冊過,但當(dāng)前未登錄。User在瀏覽Page1時,如果點擊頁面內(nèi)的Button,則會來到掃碼登錄頁。用微信掃碼登錄成功后則會跳轉(zhuǎn)至Page2。

3,跳轉(zhuǎn)頁面的代碼

在微信授權(quán)后要回調(diào)的地址中設(shè)置好控制器controller和方法callback。

然后在callback方法中進(jìn)行用戶登錄后的邏輯編寫,如果登錄成功:

return $this->goBack();

網(wǎng)友評論