【发布时间】:2016-12-21 14:00:05
【问题描述】:
我在 Symfony2 (v2.8.9) 上遇到了关于识别、身份验证和重定向的问题。
我安装了 HWIOAuthBundle 以使用 Google 登录并基于手工制作的用户包。该网站对匿名用户完全关闭,您需要登录才能使用它。
我的问题是,为了访问某人给出的精确 URL,并在您通过登录页面登录后登陆,我在 app/config/config.yml 中设置了use_referer 到 true。
从那时起,当有人直接进入 /login 页面时,一旦他通过身份验证,他就会被带回 /login 页面,而不是被重定向到网站的私有主页(由路由 rnd_hub_homepage 定义的 /hub) .他被正确地识别和验证带到那里,但我希望他不应该降落在那里,而是在 /hub 页面上。
如果我在 app/config/security.yml 中将 always_use_default_target_path 行设置为 true,那么 use_referer 不再考虑其他 URL...
这是我对文件 app/config/security.yml 的摘录:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login$
anonymous: true
main:
pattern: ^/
anonymous: true
#logout: true
logout:
path: /logout
target: /login
oauth:
resource_owners:
google: "/login/check-google"
login_path: /login
always_use_default_target_path: false
failure_path: /login
oauth_user_provider:
service: ib_user.oauth_user_provider
access_control:
- { path: ^/hub, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/user, roles: ROLE_USER }
- { path: ^/XXX, roles: ROLE_XXX }
- { path: ^/YYY, roles: ROLE_YYY }
- { path: ^/ZZZ, roles: ROLE_ZZZ }
- { path: ^/AAA, roles: ROLE_AAA }
- { path: ^/BBB, roles: ROLE_BBB }
- { path: ^/DDD, roles: ROLE_DDD }
- { path: ^/EEE, roles: ROLE_EEE }
- { path: ^/admin, roles: ROLE_ADMIN }
这是我的 app/config/config.yml 文件的摘录:
hwi_oauth:
firewall_names: [main]
target_path_parameter: rnd_hub_homepage
use_referer: true
resource_owners:
google:
type: google
#etc....
提前感谢您对此问题的各种投入... (对不起我的英语,我是法国人)
【问题讨论】:
标签: php symfony authentication url-redirection