Laravel LogOut无法正常工作,用户在请求安全路由后会自动登录

时间:2016-06-10 09:07:48

标签: php laravel laravel-5

当我退出时,会话数据被删除并且用户被注销。但是,只要请求任何安全资源/路由(不需要登录),例如下面的“用户”资源,用户就会自动进行身份验证并返回安全资源。实际上,经过双重检查后,路由甚至不需要使用身份验证中间件进行保护,任何使用$ request-> user()实例的控制器的路由都将导致自动身份验证。

无法理解可能导致此问题的原因?也许浏览器将凭据存储在cookie或其他地方并且每次都发送它们?即使在注销后,数据库中的remember_token字段也会自动填充。在客户端上使用Laravel 5.1和angularjs。

Route::resource('admin/user', 'UserController', ['before' => 'auth.basic']);

类AuthController扩展Controller

  public function getLogout()
    {
        Auth::logout();
        Session::flush();
        return redirect('/');
    }

1 个答案:

答案 0 :(得分:1)

auth.basic 是HTTP身份验证的中间件, auth 是检查用户是否已登录的中间件。请尝试以下操作:

Route::group(['middleware' => 'auth'], function () {
    Route::resource('admin/user', 'UserController');
});

在使用Angular JS的情况下,如果用户未登录,则返回代码401。