注销后删除会话存储时出现HttpException

时间:2017-09-17 06:37:03

标签: php laravel symfony httpexception

我遇到了一个错误,如果我退出然后从框架存储中删除会话,它会抛出以下内容:

"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"file": "C:\\wamp64\\www\\leadbind\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
"line": 203,

这令人沮丧,因为它没有说明问题所在。除了这个bug,我的登录/注销工作完美无瑕。

为什么会这样?我也在使用AuthenticateSession中间件。这是一个问题,因为当有人在2小时后重新打开浏览器并尝试登录时,每次都会收到此错误。

编辑:经过进一步调查,看起来这是由于TokenMismatchException。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

当您的CSRF已经过时时,TokenMismatchExceptions会发生。这是为了防止当有人拿到CSRF令牌时发送到您的Web应用程序的恶意内容,因为该页面仍处于打开状态。您可以检查Laravel Caffeine如何轻松刷新这些令牌,或者在收到此类错误时在前端自行刷新页面。

这种错误在各种各样的网络应用程序上发生了很多,你可能已经收到消息“这个页面已经打开太长时间”或“请刷新”或者在你之后弹出“登录”弹出窗口已经将应用程序打开了一晚左右。这些机制(有时)是因为应用程序需要一个新的令牌。