在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。


当前回答

我在谷歌登录时也遇到了同样的问题。

我已经在谷歌开发人员控制台的谷歌凭据面板中正确输入了我的回调 这是我的重定向网址:

https://www.example.com/signin-google

https://www.example.com/signin-google/

https://www.example.com/oauth2callback

https://www.example.com/oauth2callback/

一切似乎都很好,对吧?但它仍然没有工作,直到我添加了一个更神奇的Url,我添加了sign -google Url(这是默认的谷歌回调)没有www和问题解决。

考虑到这一点(取决于你的域名),你可能需要或不需要同时添加www url

其他回答

任何人努力寻找在新的控制台设置重定向url: api和认证->凭据-> OAuth 2.0客户端id ->单击链接找到所有的重定向url

在我的情况下,我必须检查客户端ID类型的web应用程序/已安装的应用程序。

已安装的应用程序:http://localhost[重定向uri] 在这种情况下,localhost就可以工作了

web应用程序:您需要有效的域名[重定向uri:]

我的观点是: 如果使用Google_Client库,不要忘记在更新重定向URI之后更新服务器上的JSON文件。

我有前端应用程序和后端api。

从我的后端服务器,我通过点击谷歌api进行测试,并面临这个错误。在我的整个时间里,我想知道为什么我需要给redirect_uri,因为这只是后端,对于前端它是有意义的。

我所做的是给不同的redirect_uri(虽然有效)从服务器(假设这只是占位符,它只需要注册到谷歌),但我的前端url创建令牌代码是不同的。因此,当我在服务器端测试中传递这段代码时(redirect-uri是不同的),我遇到了这个错误。

所以不要犯这个错误。确保您的frontend redirect_uri与您的服务器的谷歌相同,使用它来验证真实性。

我在控制台中有两个请求uri, http://xxxxx/client/api/spreadsheet/authredirect和http://localhost。

我尝试了这个问题的所有回答,并确认没有一个是我的问题。

我从控制台删除了localhost,更新了client_secret。Json在我的项目中,不匹配错误消失了。