VerifyCsrfToken.php第67行中的TokenMismatchException仅在实时服务器上

时间:2016-10-27 10:31:13

标签: php laravel-5 laravel-5.2

当我尝试在Laravel 5.2中使用auth时,我收到此错误。这是在转移到实时服务器后发生的。在我的本地服务器上一切正常。

表单中的令牌和Session:token()是相同的。

UPD:我把dd($ request)放在laravel / framework / src / Illuminate / Foundation / Http / Middleware / VerifyCsrfToken.php

和_token值不匹配表单中的_token输入。

我试过了:

  • 为auth路由禁用CSRF,在数组中添加路由 粗粉/ VerifyCsrfToken.php。
    • 设置/ storage / bootstrap文件夹的777权限。
    • 使用{!! csrf_field()!!}和name =“_ token”value =“{{csrf_token()}}”>。
    • 在config / session.php。
    • 中更改了域
    • php artisan key:generate。
    • 重新安装Auth。 还有我有中间件的路由= auth.basic即使没有要求首先登录,我也会收到“凭证无效”。

在我的本地服务器上运行正常。

由于

2 个答案:

答案 0 :(得分:0)

你的处理程序看起来像这样吗?

<?php 
...
public function handle( $request, Closure $next )
{
    if (
        $this->isReading($request) ||
        //$this->runningUnitTests() ||
        $this->shouldPassThrough($request) ||
        $this->tokensMatch($request)
    ) {
        return $this->addCookieToResponse($request, $next($request));
    }

    // redirect the user back to the last page and show error
    return Redirect::back()->withErrors('Sorry, we could not verify your request. Please try again. (You waited too long to submit your form)');
}

答案 1 :(得分:0)

尝试一下将解决您的问题,这是因为http和https冲突。

转到“ session.php”文件,将其更改为:

'secure' => env('SESSION_SECURE_COOKIE', false),

对此:

'secure' => true,