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

Google api 如何为Google OAuth 2添加多个重定向URI?,google-api,google-oauth,url-redirection,socialauth,social-authentication,Google Api,Google Oauth,Url Redirection,Socialauth,Social Authentication,我正在尝试让GoogleOAuth2身份验证与我在计算机上运行的玩具应用程序一起工作(在localhost:8080)使用Java 但是,当我的应用程序连接到Google以验证用户身份时,Google会以以下错误页面进行响应: 我的应用程序名为“我的爱好应用程序”,在开发者控制台中配置如下: 在合同中,规定: redirect_uri:为此项目列出的redirect_uri值之一 在开发者控制台中 确定响应的发送位置。这个 此参数的值必须与列出的值之一完全匹配 在Google开发者控制台(包

我正在尝试让GoogleOAuth2身份验证与我在计算机上运行的玩具应用程序一起工作(在
localhost:8080
)使用Java

但是,当我的应用程序连接到Google以验证用户身份时,Google会以以下错误页面进行响应:

我的应用程序名为“我的爱好应用程序”,在开发者控制台中配置如下:

在合同中,规定:

redirect_uri:为此项目列出的redirect_uri值之一 在开发者控制台中

确定响应的发送位置。这个 此参数的值必须与列出的值之一完全匹配 在Google开发者控制台(包括http 或https方案、大小写和尾随“/”)

我有几个问题:

  • 如何将多个
    重定向\u uri
    添加到我的应用程序
  • 为什么谷歌将我的应用程序标识为“项目默认服务帐户”而不是“我的爱好应用程序”

实际上比你想象的要容易,不幸的是,我花了几个小时才弄明白

如何将多个重定向URI添加到我的应用程序? 通常,当你在谷歌或其他地方添加多个链接时,你会通过
将其分开但是对于重定向URI,您必须使用新行,这实际上不是很直观。因此,当您按下编辑设置按钮时,如果您还有两个链接,并用换行符分隔(
enter
),则可以添加到URI和/或源代码中

不需要复杂的应用程序配置或新密钥

为什么谷歌将我的应用程序标识为“项目默认服务帐户”而不是“我的爱好应用程序”?
关于你的第二个问题:你必须转到“同意屏幕”选项卡来更改你的应用程序信息,如你的
产品名称
主页
徽标
,等等。

这个答案可能不是问题的确切答案,但是我认为这可能会帮助那些第一次使用GoogleOAuth的人,他们想知道为什么他们的多个URI没有被识别

我们在代码中的两个位置使用重定向URI。第一次是在获取身份验证代码时,第二次是在将此代码交换为访问令牌时

在中,明确提到了身份验证代码请求(第一个请求)的响应将发送到重定向URI。因此,如果您从端点A发出请求,并将rediredt URI指定为端点B,Google将向端点B发送身份验证代码。这很清楚,工作正常,没有任何错误

关于第二个请求,文档有点含糊不清。redirect_URI参数描述如下:

重定向uri:您在API控制台中指定的uri,如下所述 在中设置重定向URI

这就是我在理解它如何工作时犯的错误。按照与第一个调用类似的方法,我使用了第三个端点C,并在进行第二个调用时在redirect_URI参数中传递了这个端点C。尽管我的端点B和C是在API控制台中指定的,但我得到了一个URI不匹配错误

问题在于,与第一次调用不同,第二次调用的响应来自发出请求的同一端点。我用python提出了如下请求:

r = requests.post(token_endpoint, params)
r
具有带有令牌的响应

我得到了一个URI不匹配,因为我应该在两个调用中使用相同的重定向URI

因此,对于单个OAuth请求,我们需要使用单个重定向URI


但是,这就提出了一个问题,为什么在API控制台中允许对单个应用程序使用多个重定向URI。我假设如果我们需要在同一个应用程序中进行多对authCode令牌调用,我们有使用多个重定向URI的余地。

谢谢,我们花了20分钟试图让它工作!这应该被标记为答案。正在寻找多个重定向URI。谢谢+我只是想知道这个答案是否仍然有效。控制台有添加多个URI的选项,但我看不到第二个URI被识别。它只是每次抛出一个URI不匹配错误。@Vikas我有一段时间没有尝试过它了,也许谷歌发现它给人们带来了一些麻烦,并改变了输入方法。如果更改,请告知我们。:-)@CMPSoares。。。好啊我已经知道我做错了什么。将作为答案发布。非常感谢您消除了困惑。我费了好几个小时才弄明白为什么第二个uri重定向不起作用。不仅如此,在文档中,示例使用了两个不同的重定向uri!非常混乱,感谢您发布此消息。为什么在API控制台中允许为单个应用程序使用多个重定向URI?我可以想象有两个原因:(1)您可以从不同的环境(例如,在开发期间)测试。(2) 您可以在不同的URL上提供相同的应用程序,并且不希望用户切换域。