如何在非安全页面上获取当前登录用户?
我只有一个/帐户/页面通过防火墙保护,其他页面不受保护。
我的全球导航具有以下模板(简化):
{% if app.user %}
<a href="/account/data">...
<a href="/logout>...
{% else %}
<a href="/account/login">....
{% endif %}
问题:带有注销链接的导航也应该可以在不安全的页面上访问,但是没有UsernamePasswordToken ...并且symfony显示登录链接,而不是/ logout和/ account / data链接。我使用匿名侦听器配置了所有其他页面,但它无法正常工作。
有解决方案吗?
答案 0 :(得分:8)
您无法在非防火墙页面上获取用户。为整个应用启用防火墙,允许匿名访问,并使用access_control
保护应用的特定部分:
security:
firewalls:
main:
pattern: ^/
anonymous: ~
access_control:
- { path: ^/protected, roles: ROLE_SOME }