我有一个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 每次。