即使用户已登录,也会从getAuthToken屏幕登录Chrome



我有一个Chrome应用程序,我正在使用identity权限检查用户的电子邮件:

chrome.identity.getProfileUserInfo(function(userInfo){
console.log(userInfo.email);
});

它工作正常。但是,仅当用户使用其 Google 个人资料登录 Chrome 时。

可能会发生用户未登录的情况,因此在getProfileUserInfo调用之前,我正在执行交互模式设置为 true 的getAuthToken,以强制登录页面:

chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
});

但是,在用户正确登录并设置 Chrome 配置文件后,当他们下次运行该应用程序时,尽管他们已经登录,但会再次看到弹出窗口。

我的尝试是用另一个相同的调用包装令牌调用,但交互模式设置为 false,因此如果失败,它会触发交互模式设置为 true 的调用。

chrome.identity.getAuthToken({
'interactive': false
}, function (token) {
if (!token) {
chrome.identity.getAuthToken({
'interactive': true
}, function (token) {});
}
});

这仍然会导致相同的问题(用户正确登录,但下次运行应用时,他们会再次看到登录屏幕)。

我知道getProfileUserInfo在没有getAuthToken的情况下工作正常,只要用户已经登录,但我想要一个系统来提示那些没有登录的人。

如何仅获取一次登录屏幕?

对于未来的人们:我通过激活 Gmail 的同步来解决问题。

进一步你可以阅读这篇文章 chrome.identity.getProfileUserInfo() 返回空 id

对于谷歌

Chrome.identify.auth2 用户未登录错误。 chrome.identify.auth2 每次。

最新更新