1. 程式人生 > 實用技巧 >解決Laravel5.2 Auth認證退出失效的問題

解決Laravel5.2 Auth認證退出失效的問題

登入正常,但是退出的時候並沒有清掉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認證退出失效的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。