【问题标题】:TokenMismatchException in VerifyCsrfToken.php line 67 in laravel 5.2Laravel 5.2 中的 VerifyCsrfToken.php 第 67 行中的 TokenMismatchException
【发布时间】:2016-09-03 15:59:50
【问题描述】:

我使用“php artisan key:generate”命令生成了新密钥。已经添加 csrf 令牌 {!! csrf_field() !!} 在表单下的刀片页面上。但仍然出现错误。

【问题讨论】:

  • 您是否重新加载了表单页面?可能该页面内的令牌已过期。
  • 也许会话有问题。请求中的_token需要与会话中的_token匹配。
  • @MTVS 这类问题有什么解决方案吗?
  • csrf_field是加在表格里面还是表格下面?你说它在表格下面。
  • @berkayk 已经在表单中添加了 csrf_field。

标签: laravel laravel-5.2 laravel-routing csrf-protection


【解决方案1】:

可能是会话问题。通过修改VerifyCsrfToken中间件,可以分析错误。

在\App\Http\Middleware\VerifyCsrfToken.php文件中,在返回方法之前,可以在下面添加控件查找原因。

public function handle($request, Closure $next)
{
    if($request->input('_token')) {
        if ( \Session::getToken() != $request->input('_token')) {
            \Log::error("Expired token found. Redirecting to /");
            return redirect()->guest('/');
        }
    }

    return parent::handle($request, $next);
}

我在我的应用程序中遇到了这个问题,我通过将用户重定向到 root 作为来宾解决了这个问题。也许这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2016-07-27
    • 2016-04-24
    • 1970-01-01
    相关资源
    最近更新 更多