Google API身份验证:客户端无效的来源

时间:2017-03-02 21:26:26

标签: google-api google-oauth google-analytics-api google-api-js-client

在向Google API(gapi)发出身份验证请求时,它会在checkOrigin上返回false。

我删除了任何客户ID或任何直接链接到我的帐户的内容,并将其替换为正则表达式,以指示数据供参考。

网址:https://accounts.google.com/o/oauth2/iframerpc?action=checkOrigin&origin=https%3A%2F%2Flocal.tools&client_id=(\d{21})

我的原始网址是本地网址,即https://local.tools

结果:{valid: false}

我使用此处找到的示例没有偏差(除了用我的21位数字clientid替换clientid):https://ga-dev-tools.appspot.com/embed-api/third-party-visualizations/

我试图显示的项目在演示网站上很好地显示,但是我的local.tools网站上的客户端错误没有超过无效来源。

14 个答案:

答案 0 :(得分:59)

清除浏览器缓存。开始在Chrome中收到此错误,然后我创建了一个新的客户端ID,但仍然遇到了问题。打开firefox并且它工作正常,因此我清除了Chrome上的缓存并开始工作。

答案 1 :(得分:43)

使用此示例时,我收到了相同的控制台错误消息:https://developers.google.com/analytics/devguides/reporting/embed/v1/getting-started

文档说不要忽视两个关键步骤(“当您阅读说明时,重要的是不要忽视这两个关键步骤: 启用Analytics API [&]设置正确的来源“),但没有明确说明WHERE设置正确的来源。

由于我的客户端ID不起作用,我创建了一个新项目和一个新的客户端ID。新项目可能没有必要,但我保留(和使用)它。

这是有效的:

在创建凭据期间,您将看到一个名为“限制”的部分 输入JavaScript来源,重定向URI或两者“。这是您可以输入原点的地方。

保存并复制您的客户端ID(和密码)。

我的脚本在创建新的OAUTH凭据,分配了原始凭据并在此过程之后使用新生成的客户端ID后工作。

答案 2 :(得分:10)

如果未启用API,则

凭据不起作用。在我的情况下,需要接下来的步骤:

  1. 转到https://console.developers.google.com/apis/library
  2. 输入' People'
  3. 从结果中选择' Google People API'
  4. 点击'启用'

答案 3 :(得分:5)

对我来说 - 我刚刚来到这里:

https://console.developers.google.com/apis/credentials

然后选择了正确的项目;然后选择控制台错误消息中显示的具有相同ID的凭据。编辑凭据时,您可以将多个来源添加到白名单。

答案 4 :(得分:5)

尝试清除缓存,然后重新加载,我也遇到了同样的错误,但是当我尝试在chrome浏览器中的隐身浏览器上运行时,它起作用了。

答案 5 :(得分:3)

关键点::将http://localhosthttp://localhost:port_number都添加到“ JavaScript原始授权”框中,以进行本地测试或开发。

答案 6 :(得分:1)

创建新的oauth凭据对我有用

答案 7 :(得分:0)

由于Allow-Control-Allow-Origin: *浏览器扩展,我收到了错误消息。

答案 8 :(得分:0)

如果您在本地主机上运行它,请将端口更改为5000,它将对其进行修复

答案 9 :(得分:0)

尝试使用其他浏览器(chrome)可以解决问题,并在firefox上清除缓存可以解决此问题。

(PS:未将托管URI添加到API凭据中的授权JavaScript来源中会给您错误:redirect_uri_mismatch)

答案 10 :(得分:0)

清除缓存对我有用。

对于反应开发人员,请尝试重新启动项目,否则它将一次又一次显示相同的错误。

答案 11 :(得分:0)

这是一个推荐人政策问题。

这对我来说也太痛苦了很长时间...

<块引用>

发现问题,我的网站实例的引荐来源政策设置为 没有推荐人。将其设置为 no-referrer-when-downgrade 后,One 点按提示按预期显示。

https://stackoverflow.com/a/63039142/15565029

如果您使用的是 Django,则 SECURE_REFERRER_POLICY 默认为“同源”。通过在设置文件中添加以下代码来更改它。

# settings.py
SECURE_REFERRER_POLICY = 'no-referrer-when-downgrade' 

https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-SECURE_REFERRER_POLICY

答案 12 :(得分:0)

类似于上面的几个答案,但有截图。如果您为 Firebase 创建了项目,也可以使用相同的步骤在 Google Cloud Platform 控制台中进行配置。

  1. 选择位于 https://console.cloud.google.com/ 的项目
  2. 导航到凭据
  3. 点击相关 OAuth 2.0 客户端 ID 的“编辑”按钮
  4. 将 URI 添加到授权的 JavaScript 源
  5. 别忘了保存

enter image description here

enter image description here

答案 13 :(得分:-1)

我遇到了同样的问题,并进行了3天的搜索:解决“ popup_closed_by_user”转到您的console.google转到您的API管理:凭据:修改您的凭据:

授权的Javascript来源(http://localhost:port);Authorized重定向URI(http://localhost:port/auth/google/callback);

示例:||授权的Javascript来源(http://localhost:4200);Authorized重定向URI(http://localhost:4200/auth/google/callback)|| enter image description here