Laravel 5 TokenMismatchException(仅限Google Chrome)

时间:2015-06-18 16:08:46

标签: google-chrome laravel-5 homestead

我登录了laravel 5应用程序。删除了我的所有cookie,并在我尝试重新登录时突然收到TokenMismatchException错误。

它只发生在我删除cookie的浏览器(谷歌浏览器)中。

有谁知道我怎么解决这个问题?为什么我只在一个浏览器中出现错误?

1 个答案:

答案 0 :(得分:1)

当您在Laravel中使用CSRF令牌时,会发生以下情况:

  1. 客户提出表格(或任何页面)的请求

  2. 表单包含一个特殊的CSRF令牌,该令牌也保存在服务器上并与该客户端的会话相关联

  3. 提交
  4. 表单,并将CSRF令牌传递回服务器

  5. 服务器根据为该令牌保存的内容检查CSRF令牌 - 如果它们不匹配,则会出现错误。

  6. 如果您加载了表单然后清除了Cookie,则您已删除了将该表单(客户端屏幕上显示的内容)与服务器上的会话相关联的会话密钥。服务器无法知道该表单提交应该与该会话和该CSRF令牌相关联。

    有一个简单的解决方案:清除Cookie后,在浏览器中刷新页面。