登录后重定向到推荐人不起作用
Posted
技术标签:
【中文标题】登录后重定向到推荐人不起作用【英文标题】:Redirect to referrer not working after Login 【发布时间】:2018-08-21 19:13:10 【问题描述】:用户登录后,我想将他们重定向回他们来自的地方,但它在 Cakephp 3.5 中无法正常工作。以下是帮助我解决此问题所需的信息。
登录时的 URL(会话超时),
http://dev.scys.com/db/admin?redirect=%2Fadmin%2Fstatuses
这是我的身份验证配置,
$this->loadComponent('Auth', [
'loginAction' => ['controller' => 'Admins', 'action' => 'login'],
'loginRedirect' => ['controller' => 'Admins', 'action' => 'index'],
'logoutRedirect' => ['controller' => 'Admins', 'action' => 'login'],
'unauthorizedRedirect' => $this->referer(),
'authenticate' => [
'Form' => [
'finder' => 'auth',
'userModel' => 'Admins',
'fields' => ['username' => 'username', 'password' => 'password']
]
]
]);
在登录方法/动作中
$user = $this->Auth->identify();
if ($user)
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
更多积分
我也试过 $this->redirect($this->request->getQuery('redirect'));
我是否遗漏了任何我必须添加的东西才能解决这个问题:(
【问题讨论】:
试试Router::url( $this->referer(), true )
这对我有用 :(
您的意思是现在工作还是不工作?你把它放到$this->redirect(Router::url( $this->referer(), true )
了吗?
打错了,不工作,是的,我也是这样做的
用户当前被重定向到哪里?您当前的代码实际发生了什么?
【参考方案1】:
我发现了我的错误, 实际上,我使用的是操作 URL,例如,
$this->Form->create(NULL, ['url'=> ['controller' => 'Admins', 'action' => 'login'],'style'=>'display: block;');
因此,URL 变为“admins/login”并且重定向查询字符串被删除,这就是问题发生的原因,因为“$this->redirect($this->Auth->redirectUrl());
”没有找到任何重定向查询字符串(根据案例 1),所以它使用$this->Auth->config('loginRedirect');
(根据案例2)。
然后我通过从 表单创建选项参数中删除 URL 键和值来解决它。
【讨论】:
以上是关于登录后重定向到推荐人不起作用的主要内容,如果未能解决你的问题,请参考以下文章