我正在使用Laravel 5.2并手动执行所有身份验证。所以,虽然一切正常,但我收到token mismatch
错误,原因是我没有通过路由文件中的web
中间件传递我的路线:
Route::group(['middleware'=>['web']],function (){
Route::get('/', function () {
return view('welcome');
})->name('home');
});
Route::social();
其中Route::social();
是
public function social() {
$this->post('/signup',['uses'=>'UserController@postSignUp','as'=>'signup']);
$this->post('/signin',['uses'=>'UserController@postSignIn','as'=>'signin']);
$this->get('/dashboard',function() {
return view('dashboard');
})->middleware('auth');
}
但是,如果我将Route::social();
移动到Web中间件组,它不会计算错误,因此即使存在错误也会返回空错误。我该如何解决这个问题?我想要两件事!
我使用{!! Form::token() !!}
答案 0 :(得分:1)
您可能是在视图中手动添加$error
数组,web
中间件会做同样的事情,因此会被覆盖。 web
中间件组包含\Illuminate\View\Middleware\ShareErrorsFromSession
,它在视图中创建了一个带有验证错误的错误变量。
有两种方法可以解决这个问题。一种是仅包含此路由的\App\Http\Middleware\VerifyCsrfToken
中间件。另一个,我更喜欢的是将路由添加到web
中间件组,但是为您的阵列使用另一个名称时出错。