xoauth2中文文档|xoauth2 js中文教程|解析
安装命令:npm i xoauth2
xoauth2
使用 node.js 生成 XOAuth2 令牌
安装
npm install xoauth2
用法
xoauth2 从提供的客户端和用户凭据生成 XOAUTH2 登录令牌。
使用xoauth2.createXOAuth2Generator(options)
初始化令牌生成器
可能的选项值:
- 用户 (必填)用户电子邮件地址
- accessUrl (可选)令牌生成端点(默认为https://accounts.google.com/o/oauth2/token)
- clientId (必需)客户端 ID 值
- clientSecret (必需)客户端机密值
- refreshToken (Required)用户的刷新令牌
- accessToken (可选)初始访问令牌。如果未设置,将生成一个新的
- 超时 (可选)以秒为单位的TTL
- customHeaders (可选)在令牌生成请求期间发送的自定义标头雅虎需要
Authorization: Basic Base64(clientId:clientSecret)
- customParams (可选)在 getToken 请求上发送的自定义负载yahoo 需要指定 redirect_uri
请参阅https://developers.google.com/identity/protocols/OAuth2WebServer#offline以生成所需的凭据
对于 Google 服务帐户,选项值为:
- service (必需)服务帐户电子邮件。
- 用户 (必填)用户电子邮件地址
- 范围 (必需) OAuth2 范围。
- privateKey (必需)为服务帐户以 PEM 格式发布的私钥,作为字符串。
- serviceRequestTimeout (可选)要在令牌请求中使用的过期值(以秒为单位)。最大值为 3600。
- accessUrl (可选)令牌生成端点(默认为https://accounts.google.com/o/oauth2/token)
- accessToken (可选)初始访问令牌。如果未设置,将生成一个新的
- 超时 (可选)以秒为单位的TTL
- customHeaders (可选)在令牌生成请求期间发送的自定义标头
- customParams (可选)自定义有效负载以在 getToken 请求时发送
方法
请求访问令牌
使用xoauth2obj.getToken(callback)
获得的访问令牌。如果找到缓存的令牌并且它不应过期,则将使用缓存的值。
请求生成新的访问令牌
使用xoauth2obj.generateToken(callback)
获得的访问令牌。不会使用缓存并生成新令牌。
更新访问令牌值
使用xoauth2obj.updateToken(accessToken, timeout)
来设置xoauth2访问令牌的新值。此函数发出“令牌”
活动
如果已设置新令牌值,'token'
则发出事件。
xoauth2obj.on("token", function(token){
console.log("User: ", token.user); // e-mail address
console.log("New access token: ", token.accessToken);
console.log("New access token timeout: ", token.timeout); // TTL in seconds
});
例子
var xoauth2 = require("xoauth2"),
xoauth2gen;
xoauth2gen = xoauth2.createXOAuth2Generator({
user: "user@gmail.com",
clientId: "{Client ID}",
clientSecret: "{Client Secret}",
refreshToken: "{User Refresh Token}",
customHeaders: {
"HeaderName": "HeaderValue"
},
customPayload: {
"payloadParamName": "payloadValue"
}
});
// ... or for a Google service account
xoauth2gen = xoauth2.createXOAuth2Generator({
user: "user@gmail.com",
service: '{Service Email Address}',
scope: 'https://mail.google.com/',
privateKey: '{Private Key in PEM format}'
});
// SMTP/IMAP
xoauth2gen.getToken(function(err, token){
if(err){
return console.log(err);
}
console.log("AUTH XOAUTH2 " + token);
});
// HTTP
xoauth2gen.getToken(function(err, token, accessToken){
if(err){
return console.log(err);
}
console.log("Authorization: Bearer " + accessToken);
});
执照
麻省理工学院
项目issue地址: https://github.com/andris9/xoauth2/issues
项目issue数量: 3
项目贡献人员列表: