令牌不匹配异常 - 令牌每次调用都会更改

时间:2016-01-25 12:51:02

标签: php laravel

我不知道为什么我的整个项目一直运行到上周。在前一天我无法加载网站,并且没有laravel错误显示。所以通过&更新了作曲家和包#34;作曲家更新"命令。从那时起 我在哪里使用post方法投影

TokenMismatchException in VerifyCsrfToken.php line 53:

错误。

所以我改变了那个方法来获得

<form method="get" action="{{action('SignupController@index')}}">
<input type="hidden" name="_token" value="{{csrf_token()}}">
</form>

我在控制器中写道

public function index()
 {
     echo Session::token();
     echo '<hr>';
     echo Input::get('_token');
 }

它给出了结果,

     kJqTndLBxOhyzUZd78Zj5IG2K5VIRVwDxepreHXE
     ----------------------------------------
     xKpqbnzb2DoRsw6ZtqTgHgcJFB9SixydkWjLhPJA

每当我重新加载页面时,新令牌就会出现。我怎么能摆脱这个?

2 个答案:

答案 0 :(得分:1)

务必将&#34; web&#34; -middleware应用于您的控制器/路线。 最简单的方法是创建一个路由组:

Route::group(['middleware' => 'web'], function() {
    // Your route definitions here.
});

&#34; web&#34; -middleware初始化StartSession类,可以保存会话。您可以在 app / Http / Kernel.php 中看到它的功能。

以下是注册路线的更多可能性: https://laravel.com/docs/5.2/middleware#registering-middleware

答案 1 :(得分:0)

解决此问题的方法“X-CSRF-TOKEN”是将以下代码添加到主布局中,并继续正常进行ajax调用:

<meta name="csrf-token" content="{{ csrf_token() }}" />

<script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
</script>