问题描述
我在使用 google gapi 身份验证时遇到了一个奇怪的问题。出于某种原因,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。
到目前为止我尝试过的事情:
- 我认为可能是 client_id 已损坏,所以我生成了一个新的。相同的行为。
- 我认为 GCP 项目已损坏,因此我使用新凭据创建了一个新项目。相同的行为。
- 认为 cookie 有问题,所以我删除并清除了 cookie 和历史记录。相同的行为。
- 认为只与本地主机相关,所以我部署到网络。相同的行为。
如果我将初始化选项从 ux_mode: "redirect"
更改为 ux_mode: "prompt"
。有用。然而,这不是想要的体验。另外,如果我在 chrome 配置文件中只有一个 google 工作区,它也可以工作。更有趣的是......如果我使用旧项目中的客户端ID......它可以工作!问题是同意屏幕显示了错误的应用名称。
我知道这个问题与 this one 类似,但我觉得它有所不同,因为上述故障排除均无效。有什么见解吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)