登录表单中的 CSRF _token 值刷新

CSRF _token value refresh in a login form

我有一个用 Ajax 提交的登录表单。在一种特定情况下,在用户登录后,我需要使用 Auth::logout() 将他们注销并显示一个额外的模式框。所有这一切都是在没有重新加载页面的情况下发生的。

当登录模式打开并再次提交时,我收到 令牌不匹配错误。之所以会出现这种情况,是因为注销使用了Session::flush()。在此之后 _token 会话变量被刷新,而登录表单中的 _token 输入保持不变(因为提到的缺少页面重新加载)。

如何刷新登录表单中的 CSRF _token,使其以安全的方式与会话中刷新的一致?

当您通过 ajax 提交登录时,您的服务器可能会发回某种响应,让浏览器知道登录成功。您应该使用此响应发回新的 CSRF 令牌,以便您可以更新表单客户端(使用 javascript)。

要提供更多详细信息(例如,如何更新表单字段),我们需要查看您的更多代码。