我正在使用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() !!}
表单中的令牌字段
1 回答
您可能手动将
$error
数组添加到视图中,web中间件将执行相同的操作,因此会被覆盖 . web中间件组包含\Illuminate\View\Middleware\ShareErrorsFromSession,它在视图中创建了一个带有验证错误的错误变量 .有两种方法可以解决这个问题 . 一种是仅包含此路线的\App\Http\Middleware\VerifyCsrfToken中间件 . 另一个,我更喜欢的是将路由添加到
web
中间件组,但是为您的阵列使用另一个名称时出错 .