【问题标题】:Google OAuth2 for an web application hosted behind NAT (intranet server without public IP)用于在 NAT 后面托管的 Web 应用程序的 Google OAuth2(没有公共 IP 的内部网服务器)
【发布时间】:2015-04-16 02:17:19
【问题描述】:

我的网络应用程序需要访问用户的 Google 数据。我决定使用 OAuth2。问题是谷歌不接受我的redirect_uri。是我的服务器在内网的本地IP地址。

过去我使用过 OpenID,它接受本地的 redirect_uri。如何用 OAuth2 解决这个问题?

到目前为止,我发现的唯一解决方案是使用redirect_uri=urn:ietf:wg:oauth:2.0:oob,但这需要用户复制并粘贴访问令牌。有没有更好的解决方案?

【问题讨论】:

    标签: oauth oauth-2.0 google-oauth google-authentication google-openid


    【解决方案1】:

    由于显然您的用户将始终位于 Intranet 上,因此您可以使用通过用户计算机上的 hosts 文件或本地 DNS 服务器解析为本地 IP 地址的任何 FQDN。

    【讨论】:

    • 本地主机文件或本地 DNS 服务器没有帮助。 Google 要求 OAuth2 通过开发者控制台提供一个 redirect_uri。但我没有有效的 IP,因为我的 Web 应用程序没有公共 URI,它只在 Intranet 中运行。
    • 确定可以:只需添加类似localhost.yourdomain.com 的内容即可解析为您的私有IP 地址; Google 不会尝试解析该地址,只有您的客户(用户的浏览器)会。
    • 汉斯是正确的。一个常见的 OAuth 误解是 Google 会尝试调用重定向 URL,但实际上只要 URL 对浏览器有意义,它就会发送一个 http 重定向
    猜你喜欢
    • 2016-10-27
    • 2017-02-18
    • 2021-07-18
    • 1970-01-01
    • 2020-07-27
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多