"The page has expired due to inactivity" - Laravel 5.5 "该页面因长时间未活动而过期" - Laravel 5.5

12 浏览
0 Comments

"The page has expired due to inactivity" - Laravel 5.5 "该页面因长时间未活动而过期" - Laravel 5.5

我的注册页面以精确的形式显示表单,表单中包含CsrfToken ({{ csrf_field() }})。\n表单HTML\n

{{ csrf_field() }} ....

\n我正在使用内置的用户身份验证功能。除了路由和重定向之外,我没有做任何更改。\n当我提交表单(刚刚重新加载后),它会出现页面由于长时间不活动而过期。请刷新并重试。的错误。\n也许我漏掉了一个非常小的东西。但不确定是什么。请帮忙解决。\n更新\n找到了问题。会话驱动程序设置为数组。将其更改为文件,错误就消失了。\n但是,如果使用数组会出什么问题呢?

0
0 Comments

Laravel 5.5版本中出现了一个问题,即当页面因长时间不活动而过期时会显示"The page has expired due to inactivity"(页面由于长时间不活动而过期)。下面提供了一些解决该问题的方法:

1. 运行以下命令:

composer dump-autoload
php artisan optimize
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

2. 使用名为"clear-all-cached-data"的包来解决该问题。该包可以在github.com/afrazahmmad/clear-all-cached-data找到。

以上就是解决"Laravel 5.5中页面由于长时间不活动而过期导致的问题"The page has expired due to inactivity"的方法。

0
0 Comments

在Laravel 5.5中出现了"页面由于长时间不活动而过期"的问题。这个问题的原因是我将一个路由从GET改为POST后发生的。问题出现的原因是在切换到POST时忘记传递CSRF令牌。

解决方法有两种:

1. 在表单中添加CSRF令牌:

{{ csrf_field() }}

2. 在app/Http/Middleware/VerifyCsrfToken.php文件中排除该路由:

protected $except = [
    'your/route'
];

如果在表单中使用了csrf_field(),那么问题将得到解决。感谢提供解答的答案。

在我的情况下,我从第三方接收到了一个POST请求,所以添加csrf_field()不是一个选择。因为在我的情况下CSRF不是一个因素,所以将这个路由排除掉解决了问题。感谢提供解答的答案。

我的问题没有得到解决。我已经按照基本步骤操作了。但是我在使用自定义提供者和服务。当我调用控制器中的服务方法时,以POST请求方式调用,问题就出现了!

请不要禁用CSRF验证!这对保护非常重要。学习如何正确发送令牌并保护已登录用户免受恶意JavaScript的影响,这些恶意JavaScript可以代表他们提交操作。

0
0 Comments

文章标题:解决Laravel 5.5中的"The page has expired due to inactivity"问题

搜索到本答案的读者,请确保在表单中已经添加了csrf令牌,例如OP所示的{{ csrf_field() }}

如果您的会话驱动程序设置为文件驱动,请检查storage_path是否可写。如果使用基于文件的会话,则会在此处存储与令牌相关的会话数据。可以使用is_writable(config('session.files'))进行验证。

对于OP来说,会话驱动程序被设置为数组驱动。数组驱动仅用于测试目的。由于数据无法持久化,因此无法在下一次请求中比较令牌。

最后,查看config/session.php文件。最近我遇到了一个问题,我们的项目在config/session.php中设置了会话域和安全设置,但开发站点没有使用HTTPS(SSL/TLS)。这导致了这个通用的错误,因为sessions.secure默认设置为true。

测试不等同于开发。数组数据不会持久化...

我的问题没有解决。我确实做了基本的操作。但我在调用控制器方法时没有问题,但当我在控制器中运行一个调用post请求的服务方法时,问题就出现了!

我在测试中遇到了类似的会话问题。结果发现,当我在测试中使用Carbon::setTestNow($time)时,没有使用Carbon::setTestNow()进行清除。

这些是解决Laravel 5.5中"The page has expired due to inactivity"问题的原因和解决方法。请按照上述步骤进行操作,以解决该问题。

0