我正在努力使用auth组件。 我的身份验证是在插件中管理的。 在插件的AppController.php中,我设置了这个:
$this->loadComponent('Auth', [
'authenticate' => [ 'Form' => [ 'userModel' => 'BasUsers' ] ],
'loginAction' => [ 'controller' => 'BasUsers', 'action' => 'login', 'plugin' => 'Basic' ],
'userModel' => 'BasUsers',
'loginRedirect' => '/pages/home',
'logoutRedirect' => [ 'controller' => 'BasUsers', 'action' => 'login', 'plugin' => 'Basic' ],
'unauthorizedRedirect' => [ 'controller' => 'pages', 'action' => 'not-authorized' ],
'authError' => false,
'authorize' => ['Controller'],
]
);
当会话到期时,我无法强制注销(重定向到登录页面)。
会话结束时,尝试$ this-> request-> session() - > read('Auth.User.bas_users_role_id')返回null,但执行控制器/操作。
我错过了什么? 感谢。
答案 0 :(得分:0)
1 - 也许是你的browser retain your credential
2 - 在Appcontroler中尝试使用isAuthorized函数
public function isAuthorized($user)
{
if(is_null($this->request->session()->read( 'Auth.User.bas_users_role_id' ) ) :
return $this->redirect(
[ 'controller' => 'BasUsers', 'action' => 'login', 'plugin' => 'Basic' ]
);
else:
// your code
endif;
}