Google:拒绝为localhost生成目标域的登录提示权限

jim*_*web 40 google-admin-sdk google-signin

我正在尝试创建Google登录并收到错误消息:

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

之前纪念这个副本,这是一样的问题,在问在网站错误谷歌标志:权限被拒绝生成目标域登录提示,因为在这种情况下,提问者是在本地主机上,而我得到的这个错误服务器.

具体来说,我在Authorized Javascript Origins中包含了服务器的url,如下图所示: Javascript起源

当我收到错误时,请求显示发送了相同的URL,如下图所示: 无效的请求页面

我还应该在限制页面中添加其他内容吗?有没有办法弄清楚这里发生了什么?开发人员控制台上是否有日志可以告诉我发生了什么?

jim*_*web 113

好的,我想出来了.我使用IP地址(如" http://175.132.64.120 ")进行重定向uri,因为这是实时服务器上的测试站点,Google只接受实际的URL(如" http:// mycompany") .com "或" http:// localhost ")作为重定向uris.

你知道,他们可能已经在文件中说了什么,但无论如何.

  • "授权重定向URI"字段上方的文本确实说"不能包含URL片段或相对路径.不能是公共IP地址". (5认同)
  • 坦白地说,对于像Google这样的公司而言,用户界面和文档的界面非常糟糕。即使您知道自己在做什么,也很难进行设置。 (5认同)
  • 这有点烦人,我真的不明白这一点.到目前为止,我们的测试/登台服务器没有域名.设置一个域名使服务器更容易被发现并且现在很脆弱,imho. (3认同)
  • 只是添加127.0.0.1也被禁止 (2认同)

Pab*_*noz 25

我知道这是一个老问题,但这是你通过谷歌寻找问题的第一个结果,所以我将与你们分享我的解决方案.

在专用网络中部署Google OAuth服务时,即某些无法通过互联网访问的IP,您应该使用魔术DNS服务,例如xip.io,它会为您提供浏览器将解析为内部IP的URL .您可以看到,Google需要能够通过您的浏览器访问您的授权来源,这就是为什么如果您在计算机上提供localhost,设置localhost的原因,但是当您在Internet外部部署时,它将不起作用,例如VPN,Intranet或隧道.

那么,步骤:

  1. 得到你的IP地址,你正在部署的IP地址,它不是一个公共领域,让我们说这10.0.0.1是一个例子.
  2. 添加http://10.0.0.1.xip.io到Google Developer Console上的授权Javascript起源.
  3. 通过访问打开您的网站 http://10.0.0.1.xip.io
  4. 如有必要,请清除站点的缓存.
  5. 用Google登录,然后瞧.

我在另一个问题中使用这个答案得到了这个解决方案.

  • 将此答案标记为已接受!这个家伙让我省下了三天的头痛:我的工作机没有管理员权限,无法安装或编辑任何东西(更不用说编写“主机”文件了),而且我在公司网络的后面,所以我不能只添加内部我的机器的IP地址。谢谢! (2认同)
  • 这是大多数情况下的适当答案 (2认同)
  • 这个答案救了我的命!谢谢巴勃罗。 (2认同)

小智 11

如果您使用的是http://127.0.0.1/projects/testplateform,请将其更改为http:// localhost/projects/testplateform,它会起作用.


Qai*_*ari 8

如果您在机器中进行测试(本地).然后不要在客户端ID配置中使用IP地址(即http://127.0.0.1:8888),而是使用本地主机,它应该工作

示例:http:// localhost:8888