设置并使用自己的客户端ID运行后,我将完成登录过程,并在弹出窗口中选择所需的Google帐户。
选择此选项后,登录将失败,控制台中的错误为:
err = {error: "popup_closed_by_user"}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗
moh*_*sen 18
对于那些在 2022 年面临此问题的人,您应该注意到,默认情况下,新创建的客户端 ID 现在被阻止使用旧的平台库,现有客户端 ID 不受影响。2022 年 7 月 29 日之前创建的新客户端 ID 可以设置 plugin_name 以启用 Google Platform Library。
尝试使用以下库
https://www.npmjs.com/package/@react-oauth/google
并阅读此页面: https://developers.google.com/identity/gsi/web
Google 要求新的 OAuth 客户端使用最新的库,否则旧库无法正确初始化,从而导致此错误。
另外,您可以使用之前创建的 clientID 来使用react-google-login
小智 13
当我想使用 angular4-social-login 登录时,即使我也遇到了同样的问题。这是因为浏览器中的 cookie 和弹出设置。它将在 IE 中正常工作而不会出错。在 Chrome 设置中,转到更改 cookie 设置的内容设置并允许弹出窗口。然后清除缓存并重新加载。应用程序。
Raj*_*han 13
如果您正在使用端口对localhost进行测试,那么我们应该add port number在 google 开发者控制台中的Authorized JavaScript origins 部分,如下所示
希望这能解决问题。
Nam*_*iya 13
我面临着同样的问题..经过大量的解决方法后,我发现我错过了gapi初始化!
步骤如下:
首先安装gapi脚本
npm i gapi-script
Run Code Online (Sandbox Code Playgroud)
从gapi脚本导入gapi
import { gapi } from "gapi-script";
Run Code Online (Sandbox Code Playgroud)
然后在App()中初始化
gapi.load("client:auth2", () => {
gapi.client.init({
clientId:
"*****.apps.googleusercontent.com",
plugin_name: "chat",
});
});
Run Code Online (Sandbox Code Playgroud)
完成这些步骤后,您的应用程序应该可以正常工作 ^_^
我不是 100% 确定 JS 解决方法,但包括这可能适用于您的应用程序
window.gapi.load('client:auth2', () => {
window.gapi.client.init({
clientId: '******.apps.googleusercontent.com',
plugin_name: "chat"
})
})
Run Code Online (Sandbox Code Playgroud)
popup_closed_by_user 出现此问题的原因是 Chrome 默认阻止所有第三方 cookie。您必须通过 chrome 设置允许第三方 cookie。
但我们不能要求客户为此允许第三方 cookie。最好的解决方案可能是您可以在后端调用 google API(验证 google 帐户),并且后端不会出现此问题。
| 归档时间: |
|
| 查看次数: |
5824 次 |
| 最近记录: |