防火墻配置如下:
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
login_form: ~
登錄后,除了 /login 頁面,其他頁面都可以通過 $this->getUser()
獲得當前用戶信息,
請問,在 /login 頁面如何獲取當前用戶信息?
根據(jù)回答我解決了問題,下面是我的 security.yml 內(nèi)容:
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
firewalls:
# login_firewall:
# pattern: ^/login$
# anonymous: ~
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login_check
logout:
path: /logout
target: /
access_control:
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
providers:
in_memory:
memory:
users:
kevin: { password: kevinpass, roles: 'ROLE_USER' }
admin: { password: adminpass, roles: 'ROLE_ADMIN' }
encoders:
Symfony\Component\Security\Core\User\User: plaintext
同時我在SO上也找到了一個與之類似的提問 - 鏈接
感謝回答的朋友!
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
你可以刪掉login那個firewall,在acl里配置:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }