redirect_uri_mismatch我第二次运行登录

时间:2013-10-10 22:13:52

标签: symfony symfony-2.3 hwioauthbundle

我正在使用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

3 个答案:

答案 0 :(得分:0)

答案 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中。