【问题标题】:Laravel 5.2 token mismatch and middleware errorLaravel 5.2 令牌不匹配和中间件错误
【发布时间】:2017-05-13 13:38:42
【问题描述】:

我正在使用 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(); 移动到网络中间件组,它不会计算错误,因此即使有错误也会返回空错误。我该如何解决?我想要两样东西!

我的表单中有令牌字段,使用 {!! Form::token() !!}

【问题讨论】:

    标签: php laravel laravel-5.2 middleware laravel-authorization


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2016-12-10
      • 1970-01-01
      • 2022-08-19
      • 2017-06-06
      • 2020-05-10
      • 2021-08-18
      • 2021-10-22
      • 2021-03-16
      相关资源
      最近更新 更多