當用戶點擊需要登錄的鏈接時,我們當前將它們重定向到登錄頁面,但我們失去了預期的URL。記錄該URL並將用戶重定向到所請求的頁面的最佳方式是什麼?CakePHP登錄重定向到請求的URL
我們使用最新的穩定版本的Cake。謝謝。
- 編輯 -
及其配置這樣
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
// $this->Auth->autoRedirect = false;
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'dashboard');
登錄功能在users_controller
function login() {
Debugger::log("Redirect Session Key:" . $this->Session->read('Auth.redirect'), $level = 7);
$ref = $this->referer();
Debugger::log("referer():" . $ref, $level = 7);
}
當我導航到像本地主機/ mysite的/未授權的未經授權的頁我被重定向到localhost/mysite/users/login。在我的debug.log文件中,重定向會話密鑰作爲用戶/儀表板輸出,這意味着沒有有效的引薦來源。爲了驗證這個假設,我還在login函數中輸出了referrer,它實際上返回「/」,這是在我相信請求者沒有引用信息的情況下的默認值。
AuthComponent應自動保留當前會話中的「未授權」地址,並在成功登錄後在那裏重定向。它是如何配置的? – deceze 2010-10-19 01:19:03
根據蛋糕文檔,如果用戶不是來自外部鏈接,則authcomponent僅在會話中保留這一點。我的使用案例是當用戶點擊電子郵件中的鏈接到達需要登錄的頁面時。 – wcolbert 2010-10-20 04:48:50