我在我的公共网站上使用了Laravel的CSRF保护。然而,由于Laravel使用会话来维护这个保护,我担心用户可能会离开他们的电脑,然后返回到以前留下的页面,发现ajax请求不起作用了。这是因为会话已经超时(令牌不再有效?)。如果这些用户是“已登录”用户,那么我可以简单地将它们重定向回登录页面。由于他们是公共用户,所以用户被迫刷新页面才能让它重新工作(很麻烦)。
或者我对此是错误的吗?CSRF令牌是否仍然会被Laravel验证(即使会话已经超时,页面仍然会发送令牌...但是Laravel会怎样处理它?)。最佳解决方案是让令牌部分基于时间戳,以便我们可以给令牌设置过期限制,而不是仅仅使用会话时间限制。我可以让我的CSRF令牌持续2天(因此只有那些走了2天的用户会返回到无法工作的页面)。
最终,这带给我一个问题:Laravel框架中处理这个问题的具体代码在哪里?我目前正在寻找它。此外,是否有一个容易替换的解决方案,或者我必须创建自己的版本
或者我对此是错误的吗?CSRF令牌是否仍然会被Laravel验证(即使会话已经超时,页面仍然会发送令牌...但是Laravel会怎样处理它?)。最佳解决方案是让令牌部分基于时间戳,以便我们可以给令牌设置过期限制,而不是仅仅使用会话时间限制。我可以让我的CSRF令牌持续2天(因此只有那些走了2天的用户会返回到无法工作的页面)。
最终,这带给我一个问题:Laravel框架中处理这个问题的具体代码在哪里?我目前正在寻找它。此外,是否有一个容易替换的解决方案,或者我必须创建自己的版本
csrf_token();
来输出到我的页面上,然后我需要创建自己的路由过滤器与之配合。