Javascript 如何使用OAuth在chrome扩展中获得唯一的用户ID?

Javascript 如何使用OAuth在chrome扩展中获得唯一的用户ID?,javascript,json,google-chrome-extension,oauth,Javascript,Json,Google Chrome Extension,Oauth,我在清单文件中使用identity权限,在JavaScript代码中使用chrome.identity.getAuthToken({'interactive':true},function(token)获取使用标识令牌 如何获取唯一的用户ID或电子邮件地址?最好不添加新权限。您可以使用来获取电子邮件地址和唯一ID。您需要添加标识。电子邮件权限(除了标识)。它不需要OAuth2令牌(甚至不需要网络连接) 以下是将此信息打印到后台页面控制台的最小扩展: manifest.json { "mani

我在清单文件中使用
identity
权限,在JavaScript代码中使用
chrome.identity.getAuthToken({'interactive':true},function(token)
获取使用标识令牌

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

您可以使用来获取电子邮件地址和唯一ID。您需要添加
标识。电子邮件
权限(除了
标识
)。它不需要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来获取用户信息。我相信您需要同时设置
配置文件
电子邮件
范围。如果您使用,您可以调用。这更严格地满足了您的问题,其中指定使用OAuth,并且更喜欢不添加权限,但我猜that
chrome.identity.getProfileUserInfo()
才是您真正想要的。

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


例如,如果您声明了任何Google Drive作用域,则可以使用Google Drive的About GET方法(请参阅)要检索用户id和电子邮件,请在其中。

注意:这仅在用户登录到chrome内部的配置文件时有效,否则响应将为空。但仍然为+1,因为这与chrome内部真正的唯一id最接近。