我有一个用Ajax提交的登录表单。在一个特定情况下,在用户登录后,我需要使用Auth::logout()
将其注销并显示其他模式框。所有这一切都发生在没有页面重新加载的情况下。
当打开并再次提交登录模式时,我收到令牌不匹配错误。发生这种情况的原因是因为注销使用Session::flush()
。在此之后,_token
会话变量被刷新,而登录表单中的_token
输入保持不变(因为提到缺少页面重新加载)。
如何在登录表单中刷新CSRF _token
,以便它以安全的方式匹配会话中刷新的内容?
答案 0 :(得分:3)
当您通过ajax提交登录时,您的服务器可能会发回某种响应,让浏览器知道登录成功。您应该使用此响应发送回新的CSRF令牌,以便您可以更新客户端表单(使用javascript)。
要提供更多详细信息(例如,如何更新表单字段),我们需要查看更多代码。