繁体   English   中英

Laravel 5记住我没有工作

[英]Laravel 5 remember me not working

我无法使Laravel 记住我的功能。

我在我的User模型表中添加了记住令牌列。 我的User模型Authenticatable 用户模型不包含其他与“记住我的功能”相关的特定内容

我正在使用默认的Auth驱动程序和防护。

我的用户Usercontroller与默认Usercontroller不同。 它从Controller扩展。 它不使用任何特征。 在我的登录方法中,我使用Auth::login($userModelObject, true)登录用户。 一切正常。 记住我令牌在数据库中更新。 我可以看到浏览器的cookies 3 XSRF-TOKENlaravel_sessionremember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d

Auth::check()如预期返回true,但如果我要么删除,终止或修改laravel_session ,在随后的请求, remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d饼干也被出于某种原因删除(我不能够使用,以查看它var_dump($_COOKIE)在仅我应用的中间件),我认为这就是Laravel Auth驱动程序无法使用“记住我的Cookie”来自动登录用户的原因。 Framework也自动应用CSRF中间件。

是什么导致这种行为? 我需要在用户模型或控制器上使用一些其他特征吗?

注意:我使用的是Laravel 5.4,我的会话配置为:

'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => 20,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'store' => null,
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false),
'http_only' => true

我发现了问题。 我在Kernel.php中有这个\\ Illuminate \\ Session \\ Middleware \\ AuthenticateSession :: class。 我将我的项目与新的laravel 5.4项目进行了比较,发现默认情况下已将其注释掉。 我这样做了,现在我的问题已解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM