每个 Laravel 会话的过期时间是多少?

9

我们能为每个 Laravel 会话设置过期时间吗?

如果可以,如何在控制器中为我们创建的每个会话设置过期时间?谢谢。


你创建的每个会话是什么意思? - Abdulla Nilam
2个回答

29

您可以通过更改config/session.php上的lifetime值来更改应用程序范围内的会话生命周期:

/*
|--------------------------------------------------------------------------
| Session Lifetime
|--------------------------------------------------------------------------
|
| Here you may specify the number of minutes that you wish the session
| to be allowed to remain idle before it expires. If you want them
| to immediately expire on the browser closing, set that option.
|
*/

'lifetime' => 4320,
'expire_on_close' => false,

如果您想控制每个用户的会话生命周期,您需要在用户登录之前设置此值。

  1. 尝试查找数据库中的用户
  2. 如果用户存在,并且他是需要更长的会话寿命的用户,则运行 config(['session.lifetime' => $newLifetime]);
  3. 登录用户
  4. 享受当前用户更长的会话寿命

来源

您必须将上述更改添加到LoginController中。


这是针对每个用户的吗?还是整个网站? - user8011997
2
如果我们在配置文件中更改它,那么整个站点都会受到影响。如果按照上述4个步骤在LoginController中更改它,则将针对每个用户进行更改。请参考@rtfm。 - Jomoos

2

在env文件中更改SESSION_LIFETIME=(以分钟为单位的持续时间)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接