2016-12-29 104 views
1

我正在使用Laravel 5.2並手動進行所有身份驗證。所以,雖然一切正常,但我得到一個錯誤token mismatch和原因是,我沒有通過我的路線通過我的路線web中間件文件:Laravel 5.2令牌不匹配和中間件錯誤

Route::group(['middleware'=>['web']],function(){ 
    Route::get('/', function() { 
     return view('welcome'); 
    })->name('home'); 
}); 
Route::social(); 

其中Route::social();

public function social() { 

    $this->post('/signup',['uses'=>'[email protected]','as'=>'signup']); 
    $this->post('/signin',['uses'=>'[email protected]','as'=>'signin']); 
    $this->get('/dashboard',function() { 
     return view('dashboard'); 
    })->middleware('auth'); 
} 

但是,如果我將Route::social();移動到Web中間件組,它不會計算錯誤,因此即使存在錯誤也要返回空錯誤。我如何解決它?我想要兩件事!

我在使用{!! Form::token() !!}

回答

1

你可能手動添加一個$error陣列您查看我的形式標記領域,web中間件會做同樣的事情,所以這將被覆蓋。 web中間件組包括\Illuminate\View\Middleware\ShareErrorsFromSession,它在具有驗證錯誤的視圖中創建一個錯誤變量。

有兩種方法可以解決這個問題。一種是僅包含該路線的\App\Http\Middleware\VerifyCsrfToken中間件。另一個,我更喜歡的是將路由添加到web中間件組,但使用另一個名稱爲您的陣列有錯誤。