当用户点击需要登录的链接时,我们当前将它们重定向到登录页面,但我们失去了预期的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