获取每个Gmail帐户的authToken

时间:2018-10-13 00:03:50

标签: google-chrome google-chrome-extension

致力于更新Chrome插件。我的用户在不同的浏览器标签上打开了多个Gmail帐户。 chrome插件将在每个gmail选项卡中创建一个按钮,当用户单击该按钮时,该插件需要获取gmail帐户的authToken才能采取措施。我正在使用以下

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

但是问题是,authToken可能不是当前gmail帐户的正确密码(每个浏览器选项卡都有一个不同的gmail帐户)。我已经看到它获取主帐户的authToken并在其他gmail帐户上尝试过,这将导致我的操作失败。

按照identity API中的描述,我正在考虑使用

chrome.identity.getAuthToken({ interactive: true, account: {id : "<ACCOUNT_ID>"} }, 
    function(token) {..})

但是我找不到ACCOUNT_ID。我尝试了以下API(来自同一参考文献)

chrome.identity.getProfileUserInfo(function(x) {console.log(x) })

但这给了我

{email: "", id: ""}

有什么想法吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

在清单中指定镶边identity.emailhere

//  ...
var x = chrome.identity.getProfileUserInfo(
  chrome.identity.getAuthToken({interactive:true}, function(token) {..})
);
//  ...

应该可以...只要在用户单击按钮时立即调用该函数...
例如将代码嵌套在document.getElementById('button').addeventlistener('click', x);

答案 1 :(得分:-1)

尝试使用chrome.identity.getAccounts(函数回调)代替chrome.identity.getProfileUserInfo。

有关更多信息,请参考下面的链接-https://developer.chrome.com/apps/identity#method-getAccounts

希望有帮助。