繁体   English   中英

Google gapi.auth2.getAuthInstance().isSignedIn().get() 在多个 google 帐户时始终为 false

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 配置文件。 当我运行此脚本时,我收到 select 帐户的提示。 无论我选择哪一个,流程都在不断循环。 原因是const isSignedIn = googleAuth.isSignedIn.get(); 总是返回假。

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

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

如果我将初始化选项从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