我的登录方法中包含以下代码:
if(!(empty($this->data)) && $this->Auth->user())
{
if($this->referer(array('controller' => 'users', 'action' => 'login')))
{
$this->redirect(array('controller' => 'home', 'action' => 'index'));
}
else
{
$this->redirect($this->Auth->redirect($this->referer()));
}
}
}
当用户使用站点标题中的登录表单成功登录时,这基本上将用户重定向到他们的上一页但是如果他们直接从登录页面登录它将它们发送到主页,因为他们的上一页将是登录表单
然而问题是,如果用户访问需要身份验证的页面,那么他们将被重定向到登录页面然后登录,但因为他们现在访问了登录页面,他们将被重定向到主页而不是他们之前的他们试图访问的页面。
如何解决此问题?
由于
答案 0 :(得分:2)
如果我没记错(在1.3上未确认),您可以将默认重定向设置为home
,并检查重定向路径是否由Auth组件设置。
登录操作中的此类内容
$auth_redirect = $this->Session->read("Auth.redirect");
if(isset($auth_redirect) && $auth_redirect != "") {
$this->redirect($auth_redirect);
} else {
$this->redirect('/home/index')
}
在app_controler
$this->Auth->loginRedirect = array('controller' => 'home', 'action' => 'index');
答案 1 :(得分:-1)
有两个或三个选项,一个在我看来好得多