首页 文章

Laravel 5.2令牌不匹配和中间件错误

提问于
浏览
1

我正在使用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 回答

  • 1

    您可能手动将 $error 数组添加到视图中,web中间件将执行相同的操作,因此会被覆盖 . web中间件组包含\Illuminate\View\Middleware\ShareErrorsFromSession,它在视图中创建了一个带有验证错误的错误变量 .

    有两种方法可以解决这个问题 . 一种是仅包含此路线的\App\Http\Middleware\VerifyCsrfToken中间件 . 另一个,我更喜欢的是将路由添加到 web 中间件组,但是为您的阵列使用另一个名称时出错 .

相关问题