我正在使用HWIOAuthBundle通过oauth创建用户。
第一次将所有内容连接好后,我创建了用户并在集合上正确重定向:http://localhost/rememberme/web/app_dev.php/login/check-google
从第二次使用google连接更多内容时返回错误:
Error:redirect_uri_mismatch
The redirect URI in the request: http://localhost/rememberme/web/app_dev.php/oauth/connect/service/google did not match a registered redirect URI
cookie_policy_enforce=false
scope=https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
response_type=code
access_type=online
redirect_uri=http://localhost/rememberme/web/app_dev.php/oauth/connect/service/google
display=page
client_id= *****
似乎一旦您是注册用户,就会更改重定向的链接。
为什么会这样?
有可能解决吗?
修改
这是我的配置:
Security.yml:
firewalls:
main:
pattern: ^/
oauth:
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
login_path: /login
failure_path: /login
default_target_path: acme_user_default_index
oauth_user_provider:
service: hwi_oauth.user.provider.fosub_bridge
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path: acme_user_default_index
remember_me: true
logout: true
anonymous: true
remember_me:
key: %secret%
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~
always_remember_me: true
config.yml:
hwi_oauth:
connect:
confirmation: true
firewall_name: main
resource_owners:
facebook:
type: facebook
client_id: %oauth.facebook.client_id%
client_secret: %oauth.facebook.client_secret%
scope: "email"
infos_url: "https://graph.facebook.com/me?fields=username,name,email,picture.type(square)"
paths:
email: email
profilepicture: picture.data.url
options:
display: popup
google:
type: google
client_id: %oauth.google.client_id%
client_secret: %oauth.google.client_secret%
scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
paths:
email: email
profilepicture: picture
fosub:
username_iterations: 5
properties:
facebook: facebookId
google: googleId
答案 0 :(得分:0)
您应该添加redirect_uri
重定向https://console.developers.google.com/project/[your_project_name]/apiui/credential
中的URI答案 1 :(得分:0)
您可以在Google Apps应用凭据中放置多个重定向redirect_uri。 !不要创建新的客户端ID!
只需编辑当前客户端的设置,然后在新行的下方(在文本区域中)添加redirect_uri。
我遇到了同样的问题并修复了它
答案 2 :(得分:0)
你有两个不同的网址:第一个,在security.yml中的oauth.resource_owners下定义,在用户未登录时调用,第二个在用户已经登录时调用。
逻辑在OAuthUtils->getAuthorizationUrl()
中完成不幸的是,当您已经登录时,似乎无法覆盖重定向网址,因此您必须添加http://HOST/app[_dev].php/login/service/facebook
作为第二个"授权重定向URI"在您的Google Developer Console中。