如何使用OAuth在Chrome扩展程序中获取唯一用户ID?

时间:2016-06-09 09:04:34

标签: javascript json google-chrome-extension oauth

我在我的清单文件中使用MouseHover权限,在我的JavaScript代码中,我使用identity来获取使用标识令牌。

如何获取唯一的用户ID或电子邮件地址?最好不要添加新权限。

2 个答案:

答案 0 :(得分:7)

您可以使用chrome.identity.getProfileUserInfo()同时获取电子邮件地址和唯一ID。您需要添加identity.email权限(除identity之外)。它不需要OAuth2令牌(甚至网络连接)。

这是一个最小的扩展,将此信息打印到后台页面的控制台:

的manifest.json

{
  "manifest_version" : 2,

  "name" : "Identity Test",
  "version" : "0.1",

  "background": {
    "scripts": ["background.js"]
  },

  "permissions": [
    "identity",
    "identity.email"
  ]
}

background.js

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

您可以通过使用OAuth2令牌调用Google API来获取用户信息。我相信您需要同时设置profileemail范围。如果您使用Google API Client library,则可以致电gapi.client.oauth2.userinfo.get()。这更严格地符合您的问题的字母,该字母指定使用OAuth并且不希望添加权限,但我猜您chrome.identity.getProfileUserInfo()是您真正想要的。

答案 1 :(得分:0)

没有其他权限,它将取决于您在manifest.json文件中声明的oauth2 scopes

例如,如果您宣布了任何Google云端硬盘范围,则可以使用Google云端硬盘的“关于GET”方法(请参阅here)来检索用户的ID和电子邮件,其中{ {3}}