当前位置 主页 > 网站技术 > 代码类 >

    解决Laravel5.2 Auth认证退出失效的问题

    栏目:代码类 时间:2019-11-10 15:03

    登录正常,但是退出的时候并没有清掉session,退出后还是处于登录状态。解决方法如下:

    路由如下

    Route::group(['namespace' => 'Admin', 'middleware' => 'auth'], function() {
      Route::resource('admin/post', 'PostController');
    });
    
    
    // 登陆
    Route::get('auth/login', 'Auth\AuthController@getLogin');
    Route::post('auth/login', 'Auth\AuthController@postLogin');
    // 5.2版本这里的方法需要写成logout,因为在中间件中是这么定义的
    public function __construct()
     { 
       $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
     }
     // 路由中的方法要跟上述一致
    Route::get('auth/logout', 'Auth\AuthController@logout');
    

    AuthController.php中的

    // 登录成功后跳转地址
    protected $redirectTo = 'admin/post';
    // 退出后跳转地址
    protected $redirectAfterLogout = 'auth/login';

    参考 http://stackoverflow.com/questions/34479994/laravel-5-2-authlogout-is-not-working

    调试过程中在AppserviceProvider的boot方法里添加输出sql也会导致类似的错误,所以在登录调试时,尽量不要这样做

      /**
       * Bootstrap any application services.
       *
       * @return void
       */
      public function boot()
      {
        // \DB::listen(function($sql) {
        //     dump($sql->sql);
        //   });
      }

    以上这篇解决Laravel5.2 Auth认证退出失效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。