编辑:我将security.yml中的所有oauth配置移动到'默认'防火墙(并更新了oauth配置参数firewall_main:config.yml中的默认值),一切正常。
我遇到了Symfony的hwi / oauth-bundle问题。一切正常,直到我在reddit上进行身份验证后被定向回我的网站(我也尝试过twitter),此时我收到错误:
Unable to find the controller for path "/login/check-reddit". The route is wrongly configured.
我已经完成了几个文档/教程,包括:
从我可以收集的内容来看,/ login / check-reddit不是在防火墙后面的问题,但是,我已经尝试了几次调整,我似乎无法让它工作。我现在花了将近2个小时 - 如果有人有任何指示或建议,我将不胜感激!谢谢。
我的 routing.yml , config.yml 和 security.yml 的相关代码可以在下面找到。如果还有其他需要,请告诉我。
routing.ytml
hwi_oauth_redirect:
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
prefix: /connect
hwi_oauth_login:
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
prefix: /login
reddit_login:
pattern: /login/check-reddit
twitter_login:
pattern: /login/check-twitter
config.yml
hwi_oauth:
firewall_name: main
resource_owners:
reddit:
type: reddit
client_id: xxx
client_secret: xxx
twitter:
type: twitter
client_id: xxx
client_secret: xxx
security.yml
security:
providers:
in_memory:
memory: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
default:
anonymous: ~
main:
anonymous: ~
oauth:
resource_owners:
twitter: "/login/check-twitter"
reddit: "/login/check-reddit"
login_path: /login
use_forward: true
failure_path: /login
oauth_user_provider:
service: hwi_oauth.user.provider
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
答案 0 :(得分:1)
当我遇到这个问题时,我不得不将我的路线从登录改为其他东西。所以我最终使用“外部登录”为我的hwi检查登录路线
<强>的routing.yml 强>
hwi_oauth_login:
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
prefix: /external-login/
reddit_login:
pattern: /external-login/check-reddit
twitter_login:
pattern: /external-login/check-twitter
<强> security.yml 强>
security:
firewalls:
main:
oauth:
resource_owners:
twitter: "/external-login/check-twitter"
reddit: "/external-login/check-reddit"