相关疑难解决方法(0)

Laravel在用户级别自定义session.lifetime

我正在session.timeout使用一种中间件(适用于Laravel Web应用程序)覆盖价值,但就超时会话而言,这似乎并没有影响。虽然如果我调试它显示出价值,我已经覆盖了。

Config::set('session.lifetime', 1440);
Run Code Online (Sandbox Code Playgroud)

默认值如下:

'lifetime' => 15,
Run Code Online (Sandbox Code Playgroud)

我正在工作的网站对大多数用户来说会话寿命很短,但是对于某些用户,我想提供更长的会话寿命。

php session laravel-5 laravel-5.2

5
推荐指数
3
解决办法
2644
查看次数

找出 Laravel 5.7 中当前会话还有多少时间到期?

Laravel 5.7 中有没有办法找出用户当前会话到期之前还剩多少时间?

编辑

我还想检查来宾和登录用户的当前会话何时到期。

此外,在当前的答案中,似乎存在冲突的想法,即会话将在登录后恰好“SESSION_LIFETIME”分钟过期,而其他人则认为会话在上次用户活动后过期。最好澄清哪个是正确的。然后还有如何获取最后的活动时间以及会话中的活动的分类。

另外,我认为 Session::activity() 已在 Laravel 5.7 中删除。

可能的解决方案

感谢下面的@bharat-geleda,如果您使用 Laravel 5.7 并在数据库中存储会话,这是一个可行的解决方案。

$last_activity = \DB::table('sessions')->select('last_activity')->where('id', session()->getId())->first()->last_activity;

$session_time_remaining_minutes = ($last_activity + (\Config::get('session.lifetime') * 60) - time()) / 60;

dd($session_time_remaining_minutes);
Run Code Online (Sandbox Code Playgroud)

我目前不清楚“last_activity”何时更新,但页面刷新时不会发生这种情况。

session laravel laravel-5.7

5
推荐指数
1
解决办法
5545
查看次数

如何在我的登录页面中禁用“Laravel 中的会话已过期”?

我在登录页面等待 300 秒,然后单击提交按钮,然后单击提交按钮后出现“会话已过期”。但预期结果应该是成功登录。

你知不知道怎么?

php authentication csrf laravel laravel-5

4
推荐指数
1
解决办法
7854
查看次数