在Laravel 5.4中,我自定义了身份验证模块的登录方法,并使用以下方法完成了用户登录:
if($request->remember== 1)
Auth::loginUsingId($user_id,TRUE);
else
Auth::loginUsingId($user_id);
在选中“记住我”复选框后,我将第二个参数设置为TRUE。
并在sendLoginResponse方法中自定义cookie时间:
$customRememberMeTimeInMinutes = 5;
$rememberTokenCookieKey = Auth::getRecallerName();
Cookie::queue($rememberTokenCookieKey, Cookie::get($rememberTokenCookieKey), $customRememberMeTimeInMinutes);
完成上述步骤后,我记得我的令牌无法按预期工作(5分钟后,我刷新了浏览器,并且仍在用户登录状态。)
默认会话配置是这样
'lifetime' => 120,
'expire_on_close' => false,
请提出我做错了什么?
答案 0 :(得分:0)
记住我,只是避免填写登录页面。它不保留会话。如果用户此时未提交其他请求,则默认生存期为120(分钟),则会话将丢失,并在某些时候被垃圾回收。如果要更改会话超时时间,则必须转到config/session.php
/*
|--------------------------------------------------------------------------
| 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' => 120, // number of minutes you want to increase / decrease
'expire_on_close' => false,