Laravel 5记住我不工作

时间:2017-04-29 14:12:29

标签: php laravel cookies laravel-5 session-cookies

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

我在我的User模型表中添加了记忆标记列。 我的User模型Authenticatable。用户模型不包含与记住我的功能相关的任何其他内容

我使用的是默认的Auth驱动程序和后卫。

我的Usercontroller与默认值不同。它从Controller延伸。它没有使用任何特征。在我的登录方法中,我使用Auth::login($userModelObject, true)登录用户。一切正常。记住我在数据库中更新令牌。我可以在浏览器XSRF-TOKENlaravel_sessionremember_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

1 个答案:

答案 0 :(得分:0)

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