[英]Laravel 5 remember me not working
我无法使Laravel
记住我的功能。
我在我的User
模型表中添加了记住令牌列。 我的User
模型Authenticatable
。 用户模型不包含其他与“记住我的功能”相关的特定内容
我正在使用默认的Auth驱动程序和防护。
我的用户Usercontroller
与默认Usercontroller
不同。 它从Controller
扩展。 它不使用任何特征。 在我的登录方法中,我使用Auth::login($userModelObject, true)
登录用户。 一切正常。 记住我令牌在数据库中更新。 我可以看到浏览器的cookies 3 XSRF-TOKEN
, laravel_session
, remember_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.