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() !!}

4

1 回答 1

1

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

有两种方法可以解决此问题。一种是只包含\App\Http\Middleware\VerifyCsrfToken此路由的中间件。我更喜欢的另一个是将路由添加到web中间件组,但为您的数组使用另一个名称,但会出现错误。

于 2016-12-29T08:56:02.843 回答