Cakephp 当用户被重定向到登录时传递查询字符串
我有一个CakePHP网站,网址如下: 当用户(me)尝试在访问公文包管理员时,他们会自动转到的管理员登录,因为管理员方法都需要身份验证 我要做的是传递最后一页的查询字符串,这样当重定向发生时,它会在URL中这样说: 我该怎么做 我试过:Cakephp 当用户被重定向到登录时传递查询字符串,cakephp,Cakephp,我有一个CakePHP网站,网址如下: 当用户(me)尝试在访问公文包管理员时,他们会自动转到的管理员登录,因为管理员方法都需要身份验证 我要做的是传递最后一页的查询字符串,这样当重定向发生时,它会在URL中这样说: 我该怎么做 我试过: $this->Auth->loginAction = array( 'admin' => true, 'prefix'=> 'admin', 'co
$this->Auth->loginAction = array(
'admin' => true,
'prefix'=> 'admin',
'controller' => 'users',
'action' => 'login',
'?' => array('continue' => $this->referer())
);
但这只会导致一个重定向循环(不确定为什么它会尝试执行重定向:/
注意:我知道CakePHP在成功登录后会自动重定向用户,但我想添加查询字符串,因为我在应用程序中使用它来获得额外的jazz。
谢谢蛋糕会自动(如果我记得的话)将您返回到登录后尝试访问的页面,除非您弄乱了$this->Auth->redirectLogin
在before筛选器中,您可能会很幸运:
$this->Auth->loginAction = array('controller'=>'users',
'action'=>'login',
'?' => array('continue'=>'/' .
strtolower($this->name) . '/' .
$this->action), 'admin'=>false);
(我添加了狡猾的换行符)
这将产生:
site.com/admin/login?继续=%2Fcontroller%2Faction
这和你的要求差不多
您可能需要或不需要admin=>false
本质上,这将当前控制器名称和操作附加到loginAction
重定向。可能有点狡猾
我不知道如何防止在login()函数中对斜杠进行编码,您可以在
$this->Session->read('Auth.redirect');
处获得最后一页,因此无需将其添加到url中。导致url上出现这种情况:http://driz.co.uk/admin/login?continue=%2Fusers%2Fadmin_login
然后抛出有关重定向循环的错误