VerifyCsrfToken.php第46行中的Laravel 5 TokenMismatchException

时间:2015-06-04 22:15:46

标签: php laravel laravel-5

编辑:按下“登录”按钮后,即使是公共/身份验证/登录,我也会收到此错误

您好我只想尝试输出Session :: flash()但是我收到此错误消息:

TokenMismatchException in VerifyCsrfToken.php line 46

以下是代码:

public function update($id, Requests\EditPostRequest $request)
{

    $post = Post::findOrFail($id);
    $post->update($request->all());
    return redirect(route('news.edit', $id))->with('success', 'Operation successful !');
}

这在我看来:

  @if(Session::has('success'))
   <div class="alert alert-success">

    {{ Session::get('success') }}
   </div>
  @endif

我真的需要解决这个问题:/

3 个答案:

答案 0 :(得分:1)

只需在表单的结束标记之前添加{{ Form::token() }}

答案 1 :(得分:1)

它似乎与在本地/开发环境和生产环境中使用相同的密钥有关。

但是,我不确定你是如何得到冲突的,因为会话应该独立于环境,但我之前做过一些本地开发。一切都在开发中工作正常,将我的项目推送到我的其他PC,而不是我点击了TokenMismatchException。

我在我的.env文件周围戳了一下,果然,我的两个环境之间的键是相同的。更改我的prod环境中的密钥和TokenMismatchException会立即消失。

只要看看你设置的令牌,如果它们是相同的,用 php artisan key更改生产密钥:生成,希望你能这样做,只要让我知道它是不是&#39 ;吨

答案 2 :(得分:0)

您的表单中是否有CSRF令牌?

<form method="post" action="someaction">
{{ csrf_field() }} // Generates an input field with a token
// Other input fields
</form>