Cakephp 3 - 强制注销会话超时

时间:2017-08-13 15:23:53

标签: session authentication cakephp logout

我正在努力使用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,但执行控制器/操作。

我错过了什么? 感谢。

1 个答案:

答案 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;
}