繁体   English   中英

谷歌 gapi.auth2.getAuthInstance().isSignedIn().get() 当多个谷歌账户时总是假的

Google gapi.auth2.getAuthInstance().isSignedIn().get() is always false when multiple google accounts

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在使用 google gapi auth 时遇到了一个奇怪的问题。 出于某种原因, gapi.auth2.getAuthInstance().isSignedIn().get()值总是返回 false。 这是我的设置:

gapi.load("auth2", initAuth2);

initAuth2(){
    gapi.auth2.init({
      client_id: "xxxxx-yyyyy.apps.googleusercontent.com",
      hosted_domain: "domain.com",
      redirect_uri: "http://localhost:4200",
      ux_mode: "redirect",
    }).then(performAuth, error=>{
      console.error(`Error initiating gapi auth2: ${error.details}`);
    });
}

performAuth(googleAuth){
    const isSignedIn = googleAuth.isSignedIn.get();
    if(!isSignedIn){
      googleAuth.signIn();
      return;
    }
    const user = googleAuth.currentUser.get();
    console.log(user);
}

我有两个 google 工作区帐户登录同一个 chrome 配置文件。 当我运行此脚本时,会提示我选择一个帐户。 无论我选择哪一个,流程都会不断循环。 原因是这一行const isSignedIn = googleAuth.isSignedIn.get(); 总是返回false。

到目前为止我尝试过的事情:

  1. 我认为可能 client_id 已损坏,所以我生成了一个新的。 同样的行为。
  2. 我认为 GCP 项目已损坏,因此我使用新凭据创建了一个新项目。 同样的行为。
  3. 认为 cookie 有问题,所以我删除并清除了 cookie 和历史记录。 同样的行为。
  4. 认为仅与本地主机相关,所以我部署到网络。 同样的行为。

如果我将初始化选项从ux_mode: "redirect"更改为ux_mode: "prompt" 它有效。 然而,这不是想要的体验。 另外,如果我在 chrome 配置文件中只有一个 google 工作区,它也可以工作。 更有趣的是......如果我使用旧项目中的客户端ID......它可以工作! 问题是同意屏幕显示错误的应用程序名称。

我知道这个问题类似于这一个,但我觉得这是因为没有上述故障排除工作的不同。 任何见解?

1 个回复

还有就是对相同问题的情况下, 在这里,它是最有可能在API集的错误

1 当Chrome浏览器有多个帐户时,gapi.auth2.getAuthInstance()。isSignedIn.get()始终为false

我复制了Google Calendar API快速入门中给出的示例,并将其替换为适当的信息。 每次刷新页面时,都会要求我在提取api数据之前进行授权。 我正在使用Chrome,目前有多个帐户/用户。 我注意到是否打开隐身窗口并使用一组凭据登录,然后在刷新页面时不要求我进行授权。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM