使用localhost测试Google OAuth 2.0?

40

我该如何在本地测试使用Google OAuth 2.0,因为Google要求授权域名必须是顶级私有域名?

a

我尝试查找解决方案,但所有提供的解决方案都是一段时间以前的,并且我认为自那时起,Google已经更改了他们的服务。


Katie,你尝试在本地主机上运行的应用程序中使用Google OAuth2了吗?如果不起作用,你会得到什么错误?我认为你不需要将localhost添加到授权域列表中。 - Ján Halaša
3
你找到解决这个问题的好方法了吗? - Andrei F
8个回答

36

本地主机名(localhost)不是有效的顶级域名,如果没有设置同意屏幕,它不会让您生成凭据。您可以添加多个授权域名,但不能将其留空。但是,如果您没有域名/暂时不想添加域名,可以删除该字段。只是不能将它留空。

请注意描述--“当使用域名时”。因此,在同意屏幕中添加授权域名并非义务。此外,此处的授权域名仅与同意屏幕有关。需要在凭据部分指定授权原点和授权重定向URL,这才是重要的;指定请求将被接受的来源以及将被重定向到哪里的出处。因此,在同意屏幕中省略授权域名即可。

输入图像描述

那么如何删除它?以防您没有注意到,请将鼠标悬停在字段上,这个小人会弹出来。删除它。就这样。现在您应该能够保存并继续进行操作,可能会要求您设置范围。

输入图像描述

我知道现在已经很晚了,但希望它能对其他人有所帮助。


1
太棒了 - 谢谢。接下来,我的下一步是将本地主机URI添加到此处的项目中 https://console.cloud.google.com/apis/credentials 。在创建它而没有任何授权域之后,它让我添加授权域URI。 - user3773048

2
在提交应用程序验证请求之前,需要列出授权域。如果您想配置本地主机重定向URI,则可以在您的WebOAuth客户端ID配置中进行配置。请注意保留HTML标签。

5
如何为在本地机器上运行且使用 localhost 导航的服务器启用 OAuth2 登录?这个问题特别是关于如何将 localhost 添加到已授权域的。 - ocket8888

2
如果有人在上面的建议中没有成功,这个答案对我很有帮助。在Google API控制台中将我的授权JavaScript来源URI设置为http://localhost:8080,然后清空了我的Chrome缓存。

2

在我碰了一个小时的壁后,我找到了this article这篇文章,其中有一个逐步解决方案可行(截至2020年7月)。

基本上,您需要创建一个服务帐户,与该帐户共享表格,然后它应该起作用。

我尝试的所有其他身份验证方法都会引发无意义的错误,或者根本不起作用。


2
由于某种原因,人们喜欢给负分而不是答案,但这确实解决了问题。 - sapo_cosmico
你如何使用那篇文章来启用 Google OAuth2 中的 "mydomain.dev"? - Barney Szabolcs
5
这是针对服务帐户而不是OAuth2的。 - Twitch

0
只要你在本地主机上(在部署之前),你可以像这样设置Google凭据:

google credentials screenshot


0
只需从这里添加一个OAuth同意屏幕,无需域名或有效域名,由您决定。之后,从这里创建凭据,然后选择OAuth客户端ID并在此处输入您的javascript起源URL,完成!

0

不太美观,但是有效!

我在Xampp上创建了本地网站(域名)如test1.com,将该域名添加到授权域中,并使用带有参数--ignore-certificate-errors的单独快捷方式启动Chrome。请注意,当您使用此标志启动时,Chrome必须未运行

这会导致Chrome在xampp\htdocs文件夹中打开网站,我被迫进入test1.git文件夹,然后进入public文件夹,最终打开了网站,URL为:https://test1.com/test1.git/public

附注:在httpd-vhosts.conf中使用端口80,而不是443!


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接