gpt4 book ai didi

php - 从一个包到另一个包的 Symfony 2 用户安全

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:54 25 4
gpt4 key购买 nike

我是 Symfony 2 的新手,之前从未使用过任何框架。

我创建了 2 个包,一个用于核心站点,其 url 作为根 / 它是 DefaultBundle 然后我创建了一个新的 UserBundle 并设置所有到 /user/ 登录页面的路由都是 /user/login 并且工作正常。

到目前为止,我可以登录用户并且一切正常。

真正的问题是,我如何在 DefaultBundle 中检查用户是否已登录,所以我向他们显示 Welcome User 而不是 login/register 前端网站右上角的链接。

附注我不需要 FOSuserBundle 作为答案,

下面是我的 security.yml 文件

jms_security_extra:
secure_all_services: false
expressions: true

security:
encoders:
Aala\Vital\UserBundle\Entity\User:
algorithm: plaintext
# encode_as_base64: false
# iterations: 1

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_MOD: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_MOD, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
user_area:
entity: {class: AalaVitalUserBundle:User, property: email}

firewalls:

login:
pattern: ^/user/login$
security: false
anonymous: true

user_area:
pattern: ^/user
form_login:
login_path: /user/login
check_path: /user/login_check
post_only: true
default_target_path: /user/
logout:
path: /user/logout
target: /user/

main:
pattern: ^/
security: true
anonymous: ~


access_control:
- { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/user, roles: ROLE_USER }

我的文件夹结构如下

-src
-Aala
-Vital
-FronendBundle
-UserBundle

编辑:

这可以通过依赖注入(inject)来完成吗?如果是,该怎么做...

最佳答案

已解决

要在两个防火墙之间共享身份验证,请使用context。下面是我的 security.yml 文件中更新的防火墙部分

firewalls:

login:
pattern: ^/user/login$
security: false
anonymous: true

user_area:
pattern: ^/user
context: primary_auth
form_login:
login_path: /user/login
check_path: /user/login_check
post_only: true
default_target_path: /user/
logout:
path: /user/logout
target: /user/

main:
pattern: ^/
context: primary_auth
security: true
anonymous: ~

关于php - 从一个包到另一个包的 Symfony 2 用户安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com