可以在本地测试 Google 社交登录吗?

Posted

技术标签:

【中文标题】可以在本地测试 Google 社交登录吗?【英文标题】:Possible to test Google social login locally? 【发布时间】:2014-11-28 19:25:06 【问题描述】:

我想在本地机器上测试 Google Social 登录系统。但是,当我创建一个新的 OAuth 按钮时:“创建新的客户端 ID”,它要求我填写授权重定向 URI,该 URI 必须是有效地址(以 .com 或 .org 结尾)。

显然,当我们在本地开发时,最后没有 .com 或 .org。我有一个虚拟主机设置......我的本地开发地址是 mywebsite.local

有没有办法输入重定向 URI 为 mywebsite.local 而不会收到错误:

无效重定向:http://mywebsite.local/login/auth 必须以 公共***域(如 .com 或 .org)

【问题讨论】:

云呢?我在 Azure 上运行 jenkins,我得到了 ip 地址 【参考方案1】:

您可以将“授权重定向 URI”设置为本地 IP(如 http://127.0.0.1/callback),它对我来说很好。

真正令人痛苦的是,谷歌不允许用户将外部 IP(假设您的服务器 IP,如 99.99.99.99)配置为“授权重定向 URI”,谷歌希望“授权重定向 URI”以公共结尾***域(例如 .com 或 .org)。

【讨论】:

我在 API 和服务 > 凭据 > OAuth 同意屏幕上找不到“授权重定向 URI”字段,可能他们更改了 UI 或删除了该功能 它在“授权域”下【参考方案2】:

除了 pinoyyid 的回答,这就是你想要的 /etc/hosts 文件中的内容。

0.0.0.0 mywebsite.com

我将新规则放在已经存在的所有其他内容之后。

然后您可以在 mywebsite.com 访问您的开发站点,并在 Google 开发者控制台中输入正确的重定向 URL。

【讨论】:

【参考方案3】:

只需将您的开发服务器 IP 地址映射到 /etc/hosts 中的 dev.example.com。

【讨论】:

它确实提供了答案。问题是 Google 表单验证用户输入了一个有效的 URL。所以他需要输入一个任意但有效的 URL,然后将其添加到 /etc/hosts 以便他的浏览器将其解析为他的开发服务器的地址。问题和答案都很好,不需要任何批评或澄清。【参考方案4】:

关键是在本地环境中使用https URL。

在 OSX 上你可以安装本地 https 证书:https://github.com/FiloSottile/mkcert

或者使用 Laravel Valet。

因此,您的新 localhost URL 变为:https://mywebsite.local

然后将这个https 回调保存在谷歌上。在我的电脑上工作

【讨论】:

【参考方案5】:

根据我的经验,您必须将 localhost 或 url 与公共***域(我使用 .bar)一起使用,并且所有重定向 url 都必须是 https(如果您想要验证 google 应用程序 - 工作表/驱动器 api 需要)

【讨论】:

【参考方案6】:

您可以按照here 的描述将您的本地主机隧道连接到公共站点。

【讨论】:

【参考方案7】:

步骤将对 Windows 用户有所帮助:

    转到应该是 C:\Windows\System32\drivers\etc 的主机文件 在主机文件中创建添加条目,如 127.0.0.1 localhost.com 保存。将 localhost.com 用户作为 Google 开发控制台中的组织。

谢谢。

【讨论】:

【参考方案8】:

我为此目的制作了一个简单的工具。

只需将您的重定向网址设置为http://redirectmeto.com/http://mywebsite.local/login/auth

【讨论】:

以上是关于可以在本地测试 Google 社交登录吗?的主要内容,如果未能解决你的问题,请参考以下文章

MobileFirst - 社交登录实现

如何在 Groovy/Grails 上实现社交网络登录? [关闭]

一键 Google 登录以获取发布前报告

是否可以在 Android Studio 中本地调试 Google Play 的应用内计费?

AWS Cognito 用户池 + 用于身份验证/登录的社交提供商

带有特定域的 Spring Boot 的 Google 社交登录