ChatGPT解决这个技术问题 Extra ChatGPT

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

当向 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})

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

结果:{valid: false}

我正在使用此处找到的示例,没有偏差(除了用我的 21 位客户端 ID 替换客户端 ID):https://ga-dev-tools.appspot.com/embed-api/third-party-visualizations/

我尝试显示的项目很好地显示在演示站点上,但没有超过我的 local.tools 站点上的 Not valid origin for the client 错误。

并且“local.tools”是在 API 控制台中配置的 deffo 并且您的本地服务器在端口 80 上运行?尝试编辑您的 /etc/hosts 以将您的演示站点 URL 指向 127.0.0.1 并查看会发生什么。
不会发生什么好事,因为我的开发环境不在 127.0.0.1 上。它在哪个端口上运行也无关紧要。它可以用于除 80 端口之外的其他端口。
Google API 身份验证:客户端的来源无效。 --- 这可能是一种情况,当您使用相同的电子邮件 ID 创建客户端 ID 和通过网页登录时

i
iamcootis

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


无法相信缓存在其中扮演了如此重要的角色。
我在 iOS Safari 中遇到了这样的问题。来源在 iOS 上的 chrome 中被接受,但在 safari 中没有更新。我希望它迟早会超时。
或者去休息一个小时左右。特别是如果在您不想清除所有缓存的设备上或在更难清除的移动设备上。
令人惊讶的是,清除浏览器缓存实际上也为我解决了这个问题......
完美的!清除缓存后对我有用,非常感谢。
d
designdit

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

文档说不要忽略两个关键步骤(“当您阅读说明时,重要的是不要忽略这两个关键步骤:启用分析 API [&] 设置正确的来源”),但没有明确说明在哪里设置正确的原点。

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

这是有效的:

创建一个新项目

添加并启用分析 API

创建新凭证 - 确保它是 OAUTH 凭证(滚动到此页面底部以获取说明 https://developers.google.com/api-client-library/javascript/start/start-js#Setup)。

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

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

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


是的,这正是我所需要的。谢谢!似乎现在应该很明显了,但是文档有点难以理解。
如果我使用 localhost 进行测试,如何在其中添加 oauth?例如,如果我需要让访问 localhost:9000/en/login
您无需担心 oAuth 回调。当您使用给出的示例时,有一个小按钮,上面写着“google Authenticate”或者我不记得了。但它就在那里,你点击它,就会弹出一个窗口来进行身份验证。将我的域添加到源是我需要做的,包括在将示例上传到服务器之后。我必须将服务器 URL 添加到源域。
我的脚本在旧应用程序中使用新凭据。我相信这是来自 Google 的错误,因为我确实尝试将我的来源添加到我的旧凭证中。
有同样的问题,这些步骤对我有用!诀窍是在创建凭据之前启用分析 API
S
Salman Saleem

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


值得注意的是,使用 shift f5 或 ctrl f5 进行的正常硬刷新在我按 F12 打开控制台选项卡之前在 chrome 上没有起到作用,然后右键单击 Refresh 并单击“Empty cache and Hard Reload”
T
TitanFighter

如果未启用 API,凭据将不起作用。就我而言,需要执行以下步骤:

转到 https://console.developers.google.com/apis/library 输入“People” 从结果中选择“Google People API” 点击“启用”


这拯救了我的一天..!!!该错误似乎完全无关,但这有效
几个小时后,这解决了我的问题。
w
walter

要点:http://localhosthttp://localhost:port_number 添加到 Authorized JavaScript origins 框以进行本地测试或开发。


嗨 - 你在哪里设置这个?
这对我有用。我最初只列出了 localhost:port。一旦我在有端口的旁边添加了 localhost(没有端口),它立即开始工作。
是的!同时添加 localhostlocalhost:<port>
s
sudharsan tk

创建新的 oauth 凭据对我有用


在我查看之前,我认为“可能是缓存”..删除缓存后不起作用,这个解决方案可以。
你的解决方案对我有用。谷歌有点奇怪
即使我创建了一个新的客户 ID,它也对我有用
R
Reece

对我来说 - 我刚到这里:

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

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


很好,这是新客户地址的正确答案
e
ejlp12

您可能会像这样使用客户端 ID:.apps.google.com

确保您的客户端 ID 没有“.apps.google.com”


这对我有用。我认为它起作用的原因是在查询参数中有 client_id=<CLIENT_ID>.apps.google.com 的原始 URL 被 Google 缓存了很长一段时间,而具有更新 ClientID 的那个不是(即使两者应该相同)。
这是这里唯一对我有用的解决方案。
就我而言,我不得不删除“.apps.googleusercontent.com”,然后它神奇地开始工作了。
谢谢你,你为我节省了很多时间!
B
Binh Ho

更新后授权 JavaScript 来源浏览器仍在缓存旧数据,所以我需要清空缓存并重新加载它才能工作

1.更改授权来源

https://i.stack.imgur.com/3Js2p.png

2.打开开发工具(F12)然后右键单击重新加载按钮

https://i.stack.imgur.com/menLn.png


S
Sandy

清除 chrome 上的缓存有效!

请找到以下步骤以清除缓存。

打开开发工具(右键单击页面并选择检查/按 F12)在打开开发工具时右键单击 chrome 重新加载按钮。 (您将找到清除缓存并重新加载站点的选项)


N
Netch

清除缓存对我有用。

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


D
David

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

这对我来说也痛苦了很久......

发现了问题,我的网站实例的引荐来源网址策略设置为无引荐来源网址。将其设置为 no-referrer-when-downgrade 后,One Tap 提示按预期显示。

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


L
Lee Chee Kiam

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

在 https://console.cloud.google.com/ 中选择项目 导航到凭据 单击相关 OAuth 2.0 客户端 ID 的编辑按钮 将 URI 添加到授权的 JavaScript 源 不要忘记保存

https://i.stack.imgur.com/jxUNE.png

https://i.stack.imgur.com/ArTQ8.png


M
Murat Demirsoy

尝试了一个小时后,这对我有用:

https://console.cloud.google.com/apis/credentials 上:

编辑客户端输出(我的是:Web 客户端(由 Google 服务自动创建),由我的 Firebase Web 项目创建)

为客户端 ID 输入 JavaScript Origin(我的是:localhost:NNNN),不要忘记保存。

尝试谷歌登录半小时:没用

如上所述启用 Google Analytics

如上所述,清空 Chrome 缓存并硬重新加载

尝试谷歌登录半小时:没用

从 https://console.cloud.google.com 注销,然后重新登录

清空 Chrome 缓存并重新加载

现在它起作用了

我不知道上面哪一个解决了这个问题。 cloud.google 识别我的新 JavaScript 起源可能只是时间问题。


D
Der_Meister

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


s
sandy

尝试使用不同的浏览器(chrome)对我有用,清除 Firefox 上的缓存解决了这个问题。

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


V
VardanMelkonyan

如果您在 localhost 上运行它,请将端口更改为 5000,它将修复它


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅