我目前正在研究Laravel上的一个应用程序,这是一个在线测验。有一个功能可以恢复用户的会话。
这意味着如果用户在测验期间重新加载页面,他的会话将以其填充的响应恢复。每次他对答案做出一些更改时,我都会使用ajax存储用户会话。
因此,问题是如果用户足够快地选择答案以生成并发请求,Laravel会终止用户会话,因此表单的CSRF令牌变为无效。
要解决此问题,我已禁用ajax请求的CSRF验证,因为我认为此请求不会处理网站的任何敏感信息。
所以我想知道对这些路由禁用CSRF验证是对的,还是应该找到不同的解决方案?
答案 0 :(得分:0)
为什么不创建额外的路线只是为了传递新的令牌?所以你可以做一个异步查询来获取新令牌,然后将其发回到laravel?
像这样:/**
* @Get("auth/csrfToken")
*/
public function getToken()
{
return csrf_token();
}