Symfony 3.4.20 和 FOSUserBundle - 'remember me' 不工作
Symfony 3.4.20 and FOSUserBundle - 'remember me' not working
在security.yml
中进行如下相关配置:
security:
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern:
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
logout_on_user_change: true
remember_me:
secret: '%secret%'
secure: true
httponly: true
lifetime: 31536000
记住我会话令牌仅在浏览器会话期间有效,而不是在配置中指定的年份。这可能是由于 secure: true
设置造成的吗?我的开发机器没有安装任何 TLS,这会是罪魁祸首吗?还是我应该寻找其他东西?从 the documentation 来看,我似乎设置正确,所以我有点不知所措。
原来我对 secure: true
的直觉是正确的。我在测试时设置为false
,cookie是正确的。由于我的开发机器没有 SSL/TLS,如果配置了安全 cookie,它就无法发送。它应该可以在我的生产服务器上运行,因为我确实在那个环境中工作 SSL/TLS。
虽然晚了,但也许对某些人有帮助。
在 form_login:
下添加 require_previous_session: false
选项解决了我的问题。
就这样
form_login:
require_previous_session: false
根据https://symfony.com/doc/3.1/reference/configuration/security.html,
默认情况下,在提交身份验证请求之前必须存在会话。所以,如果要实现remember me功能,需要设置require_previous_session
为false
在security.yml
中进行如下相关配置:
security:
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern:
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
logout_on_user_change: true
remember_me:
secret: '%secret%'
secure: true
httponly: true
lifetime: 31536000
记住我会话令牌仅在浏览器会话期间有效,而不是在配置中指定的年份。这可能是由于 secure: true
设置造成的吗?我的开发机器没有安装任何 TLS,这会是罪魁祸首吗?还是我应该寻找其他东西?从 the documentation 来看,我似乎设置正确,所以我有点不知所措。
原来我对 secure: true
的直觉是正确的。我在测试时设置为false
,cookie是正确的。由于我的开发机器没有 SSL/TLS,如果配置了安全 cookie,它就无法发送。它应该可以在我的生产服务器上运行,因为我确实在那个环境中工作 SSL/TLS。
虽然晚了,但也许对某些人有帮助。
在 form_login:
下添加 require_previous_session: false
选项解决了我的问题。
就这样
form_login:
require_previous_session: false
根据https://symfony.com/doc/3.1/reference/configuration/security.html,
默认情况下,在提交身份验证请求之前必须存在会话。所以,如果要实现remember me功能,需要设置require_previous_session
为false