【问题标题】:Google Cloud Console: Invalid redirect URIGoogle Cloud Console:重定向 URI 无效
【发布时间】:2013-11-01 20:05:45
【问题描述】:

我现在的工作是设置 google 授权以访问我组织的资源。

但是这个任务有问题。我的组织对其本地网络使用非标准域:domain.off。当我尝试在 Google Cloud Console (https://cloud.google.com/console) 中将“http://dev.domain.off:12345/auth/google/callback.html”设置为 oauth2 回调时,我收到“无效的重定向 URI”错误。

我无法将直接地址与正确的 Internet 域一起使用,因为在我的组织的私有开发域中还有许多其他服务,我必须使用与不同地址的冲突。

我不能将直接地址的生产环境用于开发目的。开发环境只有私有地址,domain.off。

我无法修改漏洞开发环境以将所有私有开发地址更改为公共地址。这不是我能胜任的任务。

我的问题有什么解决办法吗? 我现在看到的唯一解决方案是要求谷歌开发人员在 oauth 回调设置表单中删除或修改 URI 验证器以接受非标准域。

【问题讨论】:

标签: oauth google-api


【解决方案1】:

您可能想要的是使用另一种 Oauth 工作流程。

如果您只想从您的服务中使用 google 云,请按照此处的说明申请一个服务帐户:https://developers.google.com/console/help/new/#generatingoauth2 我在 teowaki.com 有这个工作,用于与 google bigquery 交互,它可以无缝运行。您只需在云控制台上生成一个密钥并将该密钥放在您的服务器上即可。

如果您需要识别用户,那么您可以为已安装的应用程序进行 OAuth,如下所示https://developers.google.com/console/help/new/#generatingoauth2

在这种情况下,您可以在用户访问 URL 之间进行选择,在该 URL 中他们将获得一个令牌,他们需要将令牌粘贴回您的应用程序,或者重定向到 localhost 中的 URL。因为我假设你正在做一个 webapp,所以你应该选择第一个选项并向用户提供他们需要粘贴的令牌。它可能不是有史以来最好的用户体验,但作为一个内部应用程序它可能是可行的。

【讨论】:

  • 我授予您赏金,因为您提供了唯一不需要公共域的选项,这显然是此问题的主要问题。不幸的是,它并没有真正帮助我使用粉末的开发工作流程,因为我不希望在开发和生产中出现不同的行为,但我很确定你回答了只有局域网的生产服务器的问题。
  • 谢谢 :) 你在开发/生产上有不同的行为是正确的。我认为这将是一个 Intranet 应用程序,所以我为您提供了该解决方案
  • 你是对的,我刚刚添加了一个便条,但与粉末有同样的问题,但该便条绑定到现在已经消失的赏金消息
【解决方案2】:

因为您不能使用正确的互联网域的直接地址

你可以试试这样的

您可以创建一个主子域来获取所有 google 身份验证响应并使用“state”查询参数重定向到正确的子域。

例如创建 google.mydomain.com 并将其用作您的有效“重定向 URI”,Apache 会将此 url 重定向到具有重定向(或重写)功能的每个用户。

有关 apache 重定向的更多信息 http://www.simonecarletti.com/blog/2009/01/apache-query-string-redirects/

代码如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^google\.
RewriteCond %{QUERY_STRING} state=([a-z0-9]+)
RewriteRule ^(.*)$ http://%1.mydomain.com/$1 [L]

【讨论】:

    【解决方案3】:

    您是否有可能同意并重定向到您控制的某个公共域(使用 access_type = 离线)?

    当谷歌返回授权码时,不要从公共域使用它,用 http webhook 或其他东西将它传递给你有约束的私有域,然后从私有域进行交换。然后,这允许您以不同于您想要的任何方式使用域和回调 url。请注意,使用 sdk 脚本设置的 redirect_url 也必须与您在控制台上设置的相同,与您实际调用交换并完成令牌获取的服务器无关。

    我不确定我是否遗漏了您的任何限制,但也许这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-08
      • 2014-10-03
      • 2016-01-20
      • 2018-08-14
      • 2021-02-07
      • 2021-03-12
      • 2020-07-16
      相关资源
      最近更新 更多