我无法让Laravel
记住我的功能。
我在我的User
模型表中添加了记忆标记列。
我的User
模型Authenticatable
。用户模型不包含与记住我的功能相关的任何其他内容
我使用的是默认的Auth驱动程序和后卫。
我的Usercontroller
与默认值不同。它从Controller
延伸。它没有使用任何特征。在我的登录方法中,我使用Auth::login($userModelObject, true)
登录用户。一切正常。记住我在数据库中更新令牌。我可以在浏览器XSRF-TOKEN
,laravel_session
,remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d
上看到3个Cookie。
Auth::check()
按预期返回true但如果我删除,过期或修改laravel_session
,则在后续请求中,remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d
Cookie也会因某种原因被删除(我无法仅在我申请的中间件中使用var_dump($_COOKIE)
来查看它,我认为这就是为什么Laravel Auth驱动程序无法使用记住我的Cookie来自动登录用户的原因。 CSRF中间件也由Framework自动应用。
可能导致此行为的原因是什么?我是否需要在用户模型或控制器上使用其他特性?
注意:我使用的是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
答案 0 :(得分:0)
我发现了问题。我在Kernel.php中有这个\ Illuminate \ Session \ Middleware \ AuthenticateSession :: class。我将我的项目与新的laravel 5.4项目进行了比较,发现默认情况下已将其注释掉。我这样做了,现在我的问题已解决。