我正在使用FOSUserBundle和remember me
。我有一个部分,普通ROLE_USER
用户在登录后被重定向到,但我还有一个ROLE_ADMIN
用户的管理部分。remember me
功能非常适合普通用户。但对于ROLE_ADMIN
用户来说,remember me
后的位置与普通用户的位置相同。管理员登录后可以访问普通用户访问的同一主页。
但是我怎样才能修改remember me
,以便普通用户像已经做的那样访问普通主页,并且ROLE_ADMIN
用户在remember me
后转到管理员主页(或仪表板)?
这是我的安全.yml;
security:
encoders:
FOS'UserBundle'Model'UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
success_handler: login_success_handler
remember_me:
secret: '%secret%'
lifetime: 31536000
path: /
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
- { path: ^/admin, role: ROLE_ADMIN }
access_denied_url: /
为了它的价值。
创建多个防火墙:
firewalls:
admin_secured_area:
pattern: /admin/.*
provider: entity_admin
anonymous: ~
form_login:
check_path: /admin/login_check
login_path: /admin/login
logout:
path: /admin/logout
target: /admin/
members_secured_area:
pattern: /members/.*