谷歌登录网站错误:禁止为目标域生成登录提示

17

我想在我的网站上集成Google登录功能。

我正在按照这个例子操作: https://developers.google.com/identity/sign-in/web/

我为我的项目生成了客户端ID,并将其替换到上面的代码中,但我一直收到以下错误:

  1. 那是一个错误。

错误:invalid_request

拒绝为目标域生成登录提示的权限。


你的领域是什么? - Linda Lawton - DaImTo
5个回答

41

1
我也遇到过这种情况。现在切换到本地主机就可以正常工作了。谢谢你的提示。 - Chris Bao
一样的情况。我从“0.0.0.0”切换到“localhost”,然后它就可以工作了。 - Ethan Chen
如果您想从本地网络访问它(例如从您的iPhone或iPad),您可以在此处查看答案:https://dev59.com/nmAf5IYBdhLWcg3wXhoJ#30068100 - PEZO
我正在使用基于浏览器的Web身份验证。因此,除了通过“http:// localhost:port_number”运行项目之外,我还必须在开发人员控制台下的“API和服务”->“凭据”->“Web应用程序的客户端ID”中添加“http:// localhost:port_number”,并授权JavaScript起源(port_number:是您本地服务器运行的端口号)。 - utkarsh-k

4

对于我来说,我需要进入开发者控制台,在使用分析API的项目中,然后将localhost:port添加到“授权的Javascript来源”和“授权的重定向URI”中两个地方。在我的情况下,我使用的是9002端口。 如何操作


3
关于“授权重定向URI”,如果我像你这样做,会出现错误提示:“无效的重定向:http://localhost:9002必须以公共顶级域名(例如 .com 或 .org)结尾。” - Ethan Chen
显然,重定向和授权的JS URL组合对我有效,需要注意的是,在设置新域名(本地主机、开发、生产)后会有(未定义的)延迟。这真的很烦人,但是谷歌的文档定义不太明确。 - Franco Gil

1

这只是我的个人意见。我在Browsersync代理后的本地开发机上,只能使用etc/hosts文件中定义的非代理本地主机名才能使其工作,例如:127.0.0.1 my-site.localhost

然后我将http://my-site.localhost放入“授权JavaScript来源”字段中,将http://localhost放入“授权请求URI”字段中。

然后错误消失了,授权也起作用。


0

如果您在重定向URL时使用实际的IP地址(http://your IP地址:8080/),那么它会抛出此错误。Google认证API只接受域名(www.mydomain.com)作为重定向URL。


如果您想从本地网络访问它(例如从您的iPhone或iPad),您可以在此处查看答案:https://dev59.com/nmAf5IYBdhLWcg3wXhoJ#30068100 - PEZO

0

尝试使用以下 DNS 名称 localtest.me 进行本地开发。


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