@tnwx/accesstoken
Version:
TNWX 微信系开发脚手架之微信 accesstoken
114 lines • 3.54 kB
JavaScript
"use strict";
/**
* @author Javen
* @copyright javendev@126.com
* @description 封装 access_token
*/
Object.defineProperty(exports, "__esModule", { value: true });
class AccessToken {
constructor(json, tokenType = AccessTokenType.NORMAL_TOKEN) {
this.json = json;
let accessToken = JSON.parse(json);
if (tokenType === AccessTokenType.NORMAL_TOKEN) {
this.access_token = accessToken.access_token;
}
else if (tokenType === AccessTokenType.PROVIDER_TOKEN) {
this.access_token = accessToken.provider_access_token;
}
else if (tokenType === AccessTokenType.SUITE_TOKEN) {
this.access_token = accessToken.suite_access_token;
}
else if (tokenType === AccessTokenType.COMPONENT_TOKEN) {
this.access_token = accessToken.component_access_token;
}
else if (tokenType === AccessTokenType.AUTHORIZER_TOKEN) {
this.access_token = accessToken.authorizer_access_token;
this.refresh_token = accessToken.authorizer_refresh_token;
}
this.expires_in = accessToken.expires_in;
this.errcode = accessToken.errcode;
this.errmsg = accessToken.errmsg;
if (this.expires_in) {
this.expired_time = new Date().getTime() + (this.expires_in - 9) * 1000;
}
// 从缓存读取时还原
if (accessToken.expired_time) {
this.expired_time = accessToken.expired_time;
}
}
get getCacheJson() {
let temp = JSON.parse(this.json);
temp.expired_time = this.expired_time;
return JSON.stringify(temp);
}
isAvailable() {
if (this.expired_time == null)
return false;
if (this.errcode)
return false;
if (this.expired_time < new Date().getTime())
return false;
return this.access_token != null;
}
get getAccessToken() {
return this.access_token;
}
set setAccessToken(access_token) {
this.access_token = access_token;
}
get getRefeshAccessToken() {
return this.refresh_token;
}
set setRefeshAccessToken(refresh_token) {
this.refresh_token = refresh_token;
}
get getExpiresIn() {
return this.expires_in;
}
set setExpiresIn(expires_in) {
this.expires_in = expires_in;
}
get getErrCode() {
return this.errcode;
}
set setErrCode(errcode) {
this.errcode = errcode;
}
get getErrMsg() {
return this.errmsg;
}
set setErrMsg(errmsg) {
this.errmsg = errmsg;
}
get getJson() {
return this.json;
}
}
exports.AccessToken = AccessToken;
/**
* AccessToken 类型
*/
var AccessTokenType;
(function (AccessTokenType) {
/**
* 企业微信第三方应用凭证
*/
AccessTokenType["SUITE_TOKEN"] = "suite_token";
/**
* 企业微信服务商凭证
*/
AccessTokenType["PROVIDER_TOKEN"] = "provider_token";
/**
* 普通接口凭证(适用于微信公众号、企业微信、小程序、小游戏)
*/
AccessTokenType["NORMAL_TOKEN"] = "normal_token";
/**
* 微信开放平台凭证
*/
AccessTokenType["COMPONENT_TOKEN"] = "component_access_token";
/**
* 微信开放平台第三方应用凭证
*/
AccessTokenType["AUTHORIZER_TOKEN"] = "authorizer_token";
})(AccessTokenType = exports.AccessTokenType || (exports.AccessTokenType = {}));
//# sourceMappingURL=AccessToken.js.map