Google OAuth 重定向 uri 只能是 127.0.0.1/authorize

Posted

技术标签:

【中文标题】Google OAuth 重定向 uri 只能是 127.0.0.1/authorize【英文标题】:Google OAuth redirect uri can only be 127.0.0.1/authorize 【发布时间】:2022-01-08 20:33:29 【问题描述】:

我正在尝试将 Google OAuth 实施到我的项目中,并且我已经在 google 云控制台中配置了项目,设置了 OAuth 客户端机密/ID 以及重定向 uri。

问题是,当谷歌登录弹出时,它会抛出以下错误:

400 重定向_uri_mismatch

只有当我在谷歌云控制台中将授权的重定向 url 设置为不同于

的 uri 时,才会发生这种情况
https://127.0.0.1/authorize

错误:

我添加的重定向 uri:

这是我在 Visual Studio 中的端口设置:

【问题讨论】:

【参考方案1】:

redirect_uri_mismatch 是一个非常常见的错误消息。

重定向 uri 会破坏应用中您希望将授权返回到的端点。此端点必须在谷歌云控制台中正确配置。

如果您的应用程序发送 https://127.0.0.1/authorize 并且该端点未在谷歌云控制台中配置,则会出现匹配失败。

最好的解决方案是复制错误告诉您的哪个未匹配的 URL,并将其添加到 Google 云控制台中。请记住,它必须完全匹配 HTTP 与 HTTPS 不同,如果有一个斜杠,你也需要它。它必须完全匹配。

您需要了解的是它可以与 https://127.0.0.1/authorize 一起使用,因为那是您的代码正在使用的 uri。所以不要改变它。

此视频将解释错误的原因以及解决方法。 Google OAuth2: How the fix redirect_uri_mismatch error. Part 2 server sided web applications.

请记住,当您将其发布到生产环境时,您将不允许拥有 localhost 重定向 uri,您需要将其设置为您托管它的域。

【讨论】:

感谢您的回复顺便说一句。所以,根据你给我的建议,我使用了 redirect_uri_mismatch 指向的 uri,它是 127.0.0.1:57658/authorize 之后,我仍然收到错误,它现在指向另一个端口...... 127.0.0.1:57786/authorize BTW my项目基础 uri 是 localhost:4325 每次我尝试重现错误时,它不匹配的 URl 端口都会发生变化 正如我提到的,它必须完全匹配。您的 IDE 正在更改您的端口。您需要将其设置为使用静态端口运行,因为重定向 uri 需要完全匹配。 所以,我看到有人在您的视频中对此发表了相同的评论,您的回答也一样,但我似乎找不到该选项,我的项目似乎每次移植时都会运行如44325,基本固定。你有什么资源可以让我将端口设置为静态的吗? 你用的是什么IDE?

以上是关于Google OAuth 重定向 uri 只能是 127.0.0.1/authorize的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Google OAuth 2 添加多个重定向 URI?

Google API 和 OAuth 2.0 的正确重定向 URI

Google Drive OAuth2 - 对回调和重定向 URI 感到困惑

Google APIs OAuth 刷新令牌 url 在 http 重定向 uri 上返回 401?

Google API:了解重定向 URI

Oauth2 Instagram API“重定向 URI 与注册的重定向 URI 不匹配”