我登录了laravel 5应用程序。删除了我的所有cookie,并在我尝试重新登录时突然收到TokenMismatchException错误。
它只发生在我删除cookie的浏览器(谷歌浏览器)中。
有谁知道我怎么解决这个问题?为什么我只在一个浏览器中出现错误?
答案 0 :(得分:1)
当您在Laravel中使用CSRF令牌时,会发生以下情况:
客户提出表格(或任何页面)的请求
表单包含一个特殊的CSRF令牌,该令牌也保存在服务器上并与该客户端的会话相关联
表单,并将CSRF令牌传递回服务器
服务器根据为该令牌保存的内容检查CSRF令牌 - 如果它们不匹配,则会出现错误。
如果您加载了表单然后清除了Cookie,则您已删除了将该表单(客户端屏幕上显示的内容)与服务器上的会话相关联的会话密钥。服务器无法知道该表单提交应该与该会话和该CSRF令牌相关联。
有一个简单的解决方案:清除Cookie后,在浏览器中刷新页面。