我对Symfony很陌生,虽然我设法建立了一个工作站点,基于角色的身份验证和防火墙我真的在努力研究如何构建一个允许用户使用的系统登录并访问只有他们和管理员才能访问的页面。
我真正想要的是一个动态安全角色,它允许当前会话中的用户访问他们自己的私人页面并阻止其他人...
这是我的实际配置:
security: encoders: #define the encoders used to encode passwords Symfony\Component\Security\Core\User\User: plaintext IntuitByDesign\UserBundle\Entity\User: bcrypt role_hierarchy: ROLE_ADMIN: [ROLE_USER] providers: chain_provider: chain: providers: [in_memory, user_db] in_memory: memory: users: admin: { password: adminpass, roles: ROLE_ADMIN } user_db: entity: {class: IntuitByDesignUserBundle:User, property: username } firewalls: main: logout: true pattern: /.* form_login: login_path: login check_path: login default_target_path: /user logout: path: /logout target: / security: true anonymous: true access_control: - { path: /login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: /logout, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: /user, roles: ROLE_ADMIN } - { path: /user-page/, roles: ROLE_USER} - { path: /.*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
有关如何执行此操作的任何提示?
更新:登录后我想重定向只有特定登录用户才能看到的页面。
我认为可以通过将会话用户名与用户路径匹配来实现这一目标吗?
答案 0 :(得分:0)
您可以轻松创建用户系统
答案 1 :(得分:0)
如果用户已登录,您可以签入重定向的操作。如果是,则根据用户加载数据。例如您按用户ID加载所需数据。
因此每个用户都能看到与自己相关的数据。
您可以在此问题中找到有关用户身份验证处理的更多信息:How to check if an user is logged in Symfony2 inside a controller?