adi*_*yap 13 remember-me symfony
我已经实现了在Symfony2中记住我的功能.当我使用"记住我"框登录时,会创建名为"REMEMBERME"的cookie.如果我关闭浏览器并在数小时后打开它,那么该cookie也可用.但是当我加载我的应用程序的主页时,cookie会自动删除,我看不到用户登录.有人能解释我删除cookie的原因吗?
remember_me:
key: qwerty
lifetime: 604800
path: /
domain: ~
Run Code Online (Sandbox Code Playgroud)
这是我的security.yml文件部分
编辑:我还没有找到这个问题的解决方案......
EDIT2:现在遇到了新问题.REMEMBERME cookie根本没有设置.怎么解决这个?
已解决:见下面的答案
luc*_*y14 13
虽然这个问题已经得到解答,但我想提供一个可能的解决方案,如果只是为后代和谷歌搜索推荐这个问题:)
"问题很简单:记住使用的没有IS_AUTHENTICATED_FULLY角色,但只有IS_AUTHENTICATED_REMEMBERED才能记住记住的用户和登录用户之间的区别"
来源:http://www.mail-archive.com/symfony-users@googlegroups.com/msg34021.html
这意味着在安全配置中,除了IS_AUTHENTICATED_FULLY角色之外,还必须确保为每个ACL条目配置IS_AUTHENTICATED_REMEMBERED角色.
例如:
#app/config/security.yml
security:
...
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: [IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED] }
Run Code Online (Sandbox Code Playgroud)
小智 11
约翰.
我和你做的(或者做过)有同样的问题,我发现当我(Symfony2实际上是=))在第101行的/ vendor/symfony/src/Symfony/Component/Security /设置REMEMBERME cookie Http/RememberMe/TokenBasedRememberMeService.php文件$ user-> getPassword()返回NULL,因此cookie使用NULL密码值计算哈希值.
什么发生下一次,当你回到你的网站是完全有信心,你会被自动验证,Symfony的开始在检查你的cookie 相同的文件上面,但在第58行是创立该Cookie 哈希值是不一样,它预计和抛出异常('cookie的散列无效.')在内部捕获并继续某处.
所以这就是为什么在我的情况下cookie不起作用.
我还没有找到解决方案,但我会挖掘它,也许我很幸运.
希望你的问题是一样的,解决方案对我们两个都有帮助.
解决方案:
当实现eraseCredentials()声称用于从UserInterface擦除用户敏感数据时,不执行$ this-> password = null.我犯了这个错误,因为我没有理解它的目的.您可以浏览Symfony 2 Logout(UserInterface :: eraseCredentials)以获得一些解释.所以它序列化了令牌对象,我们遇到了麻烦.
归档时间: |
|
查看次数: |
10237 次 |
最近记录: |