登录后重定向到 referrer 不起作用
Redirect to referrer not working after Login
用户登录后,我想将他们重定向回他们来自的地方,但它在 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']
]
]
]);
并在登录中method/action
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
More Points
I have also tried $this->redirect($this->request->getQuery('redirect'));
我是否遗漏了任何东西或我必须添加的其他东西来解决这个问题:(
我发现了我的错误,
实际上,我正在使用 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 键和值来解决它
用户登录后,我想将他们重定向回他们来自的地方,但它在 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']
]
]
]);
并在登录中method/action
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
More Points
I have also tried $this->redirect($this->request->getQuery('redirect'));
我是否遗漏了任何东西或我必须添加的其他东西来解决这个问题:(
我发现了我的错误, 实际上,我正在使用 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 键和值来解决它