gapi.auth2.ExternallyVisibleError: 无效的cookie策略

54
我正尝试将 Google 登录验证系统添加到我的应用程序中,但是我一直遇到一个奇怪的错误,我还没有看到任何人遇到过。我完全使用了Google 的示例代码
我想可能是加载 API 时出现了一些错误,因此我检查了异步加载,似乎一切都加载正确,但是我仍然在控制台上收到这个错误:

gapi.auth2.ExternallyVisibleError: 无效的cookiePolicy

我已经在各处搜索了有同样问题的人,但是我找不到任何类似的东西。
有什么想法吗?
编辑:我尝试创建一个仅包含教程代码的页面,但错误仍然发生。
5个回答

104

事实证明,我试图通过直接访问我的本地文件(index.html)来测试API。Google登录API只能在运行中的Web服务器中工作。我启动了一个简单的node.js服务器,通过这个服务器运行我的应用程序,一切都正常工作。


4
我遇到了完全相同的问题。现在只要我知道如何启动一个简单的node.js服务器就好了 :) - Rob3C
8
我曾经认为这很复杂,但实际上并不是。安装Python,切换到HTML文件所在的目录,然后运行"python -m http.server 8000"。 - Robert3452
谢谢,这个在 Node 服务器上运行后有效。 - Kulasangar
我在Chrome扩展程序上遇到了相同的错误,但网页运行正常。请告诉我如何解决这个问题。 - Harleen Kaur Arora
这个能在Xampp上运行吗?还是只限于NodeJs服务器? - Extraterrestrial

9

正如KoJoVe所回答的那样,你需要在Web服务器内运行。如果你使用的是Python 2.7,你可以使用python -m SimpleHTTPServer 8000命令,然后在浏览器中使用localhost:8000。


4

我一直在尝试让一个谷歌浏览器扩展程序正常工作,最近我决定查看错误原因。原因是谷歌平台脚本检查 window.location.protocol(chrome扩展程序不支持https),并抛出错误“无效的cookie策略”。

我对Google不修复此问题的理论:

  1. 他们想要驱使人们使用付费的OAuth2端点

  2. 如果可能的话,他们想知道谁收到了令牌(通过证书授权)


你有没有想到如何在Chrome扩展中实现Auth2?因为我也在苦苦挣扎。 - Naveen Kashyap
@NaveenKashyap 我放弃了,OAuth和OpenID之间有区别,而我想使用的是后者。https://stackoverflow.com/questions/59556339/can-chrome-extensions-steal-oauth-tokens-from-redirect-uri - neaumusic

2
我在使用create-react-app中的react-google-login时遇到了问题,发现我是通过http://[::1]:3000/sign_in访问页面而不是localhost
我认为谷歌不喜欢127.0.0.1::1,因为我们直接暴露了IP地址之类的东西。
当我改成localhost:3000后就可以了。

0
这是与Python 3相关的解决方案:
打开Python终端并输入以下代码:
from http.server import SimpleHTTPRequestHandler as handler
import socketserver as socket
httpd = socket.TCPServer(("",8000),handler)
httpd.serve_forever()

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