我创建的Cakephp 3 app具有登录功能。登录功能在我的本地计算机上完美运行。但是,在生产服务器上登录凭据时,它会将我重定向到“\”而不是我指定的URL。我相信它的会话问题。我的意思是由于某种原因会话在重定向行丢失。
守则:
AppController的初始化方法
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth',[
'authenticate'=>[
'Form'=>[
'fields'=>[
'username'=>'username',
'password'=>'password'
],
'finder' => 'auth',
]
],
'loginAction'=>[
'controller'=>'Users',
'action'=>'login'
],
'loginRedirect' => [
'controller'=> 'Pages',
'action'=> 'dashboard'
],
]);
}
UserController.php:
class UsersController extends AppController {
public function initialize()
{
parent::initialize();
}
public function login() {
if ($this->request->is('post')) {
$user=$this->Auth->identify();
if($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
} else {
$this->Flash->error(_('your username or password is incorrect, please try agian'), [
'key' => 'falseSignIn']);
}
}
}
public function logout() {
return $this->redirect($this->Auth->logout());
}
}
答案 0 :(得分:0)
您需要创建一个隐藏的文本框,并为其分配$ this-> Auth-> redirectUrl()的值。然后,您可以从表单中检索文本框值,并将其作为参数传递给$ this-> redirect()。