我们能为每个 Laravel 会话设置过期时间吗?
如果可以,如何在控制器中为我们创建的每个会话设置过期时间?谢谢。
您可以通过更改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,
如果您想控制每个用户的会话生命周期,您需要在用户登录之前设置此值。
- 尝试查找数据库中的用户
- 如果用户存在,并且他是需要更长的会话寿命的用户,则运行
config(['session.lifetime' => $newLifetime]);
- 登录用户
- 享受当前用户更长的会话寿命
— 来源
您必须将上述更改添加到LoginController
中。
LoginController
中更改它,则将针对每个用户进行更改。请参考@rtfm。 - Jomoos在env文件中更改SESSION_LIFETIME=(以分钟为单位的持续时间)