【发布时间】:2018-06-04 13:58:59
【问题描述】:
像这样使用带有security.yaml 的 Symfony 4:
encoders:
App\Entity\User: sha256
providers:
public_users:
entity:
class: App\Entity\User
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: ~
form_login:
login_path: login
remember_me: true
remember_me:
secret: "%kernel.secret%"
name: relevea_remember_me
lifetime: 864000
always_remember_me: false
remember_me_parameter: user_login[stayConnected]
logout:
path: logout
target: /about
invalidate_session: false
access_control:
- { path: ^/auth, roles: IS_AUTHENTICATED_ANONYMOUSLY }
logoutoperation 没有清除 rememberMe 令牌。
我可以看到 LogoutListener (https://github.com/symfony/security/blob/master/Http/Firewall/LogoutListener.php) 在 RememberMeListener (https://github.com/symfony/security/blob/master/Http/Firewall/RememberMeListener.php) 之后被调用,因此对于 LogoutListener,令牌为空并且没有任何内容被清除:/
来自TraceableFirewallListener的听众名单:
Symfony\Component\Security\Http\Firewall\ChannelListener Symfony\Component\Security\Http\Firewall\ContextListener Symfony\Component\Security\Http\Firewall\LogoutListener
Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener Symfony\Component\Security\Http\Firewall\RememberMeListener
Symfony\Component\Security\Http\Firewall\AnonymousAuthenticationListener Symfony\Component\Security\Http\Firewall\AccessListener
为什么注销监听器在其他人之前?
【问题讨论】:
标签: php symfony symfony-security