在https://code.google.com/apis/console网站上,我已经注册了我的应用程序,设置生成的客户端ID:和客户端秘密到我的应用程序,并尝试登录谷歌。 不幸的是,我收到了错误信息:

Error: redirect_uri_mismatch
The redirect URI in the request: http://127.0.0.1:3000/auth/google_oauth2/callback did not match a registered redirect URI

scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
response_type=code
redirect_uri=http://127.0.0.1:3000/auth/google_oauth2/callback
access_type=offline
approval_prompt=force
client_id=generated_id

这条信息是什么意思,我该如何修复它? 我使用宝石omniauth-google-oauth2。


当前回答

如果你正在使用passport js,你正在heroku中部署你的应用程序,你需要在passport策略中添加这个设置proxy: true

passport.use(new GoogleStrategy(
    {
        clientID: keys.googleClientID,
        clientSecret: keys.googleClientSecret,
        callbackURL: '/auth/google/callback',
        proxy: true
    })

或检查您的授权url

必须是https://yourwebsite/auth/google/callback

其他回答

The trick is to input the right redirect url at the point of creating the ID. I found that updating the redirect url once the ID has been created via an 'Edit' just doesn't get the job done. What also worked for me is duplicating the entire 'vendor' folder and copying it to the same location where the 'oauth' file is (just until you successfully generate the token and then you can delete the duplicate 'vendor' folder). This is because trying to point to the vendor folder via '../vendor/autoload' didn't work for me.

因此,删除您现有的麻烦客户端OAuth ID,并尝试这种方法,它将工作。

对于我的web应用程序,我纠正了我的错误

instead of : http://localhost:11472/authorize/
type :      http://localhost/authorize/

1.您将看到类似这样的错误

2.然后单击请求详细信息

在此之后,您必须复制该url并将其添加到https://console.cloud.google.com/

访问https://console.cloud.google.com/

点击菜单-> API和服务->凭证

你会看到一个这样的仪表板,点击编辑OAuth客户端 现在在授权Javascript起源和授权重定向url 添加显示错误的url,称为redirect_uri_mismatch,即这里 http://algorithammer.herokuapp.com,所以我在这两个地方都加了 授权Javascript源和授权重定向url 点击保存,等待5分钟,然后尝试再次登录

重定向url区分大小写。

在我的例子中,我添加了两个: http://localhost:5023/AuthCallback/IndexAsync http://localhost:5023/authcallback/indexasync

我有同样的问题,在我的本地机器上的端口3000的Reactjs应用程序中授权。 我已经加了lvh。me和http://lvh.me:3000分别为授权来源和授权重定向URL,如下图所示。

注意:您可以为已验证的域添加多个站点。I-e用于本地机器、登台或其他环境