fd-simple-jwt
是一款使用纯JS开发的简单JWT工具。无任何第三方依赖包,能够保持该工具处于一个高度源码级定制的水准。
- 轻量级
- 使用方便
- 源码级定制
- 无第三方依赖
npm install fd-simple-jwt --save
中国大陆地区请使用cnpm
cnpm install fd-simple-jwt --save
const SimpleJWT = require('fd-simple-jwt');
fd-simple-jwt
共包含两个方法:
- encodeJWT:对数据进行JWT加密操作
- decodeJWT:对JWT格式的数据进行解密操作
生成JWT字符串。
encodeJWT
接受2~3个参数:
- options
- (必须)options.secretKey:加密使用的秘钥
- (必须)data:所需要加密的数据(该数据将会添加到jwt数据体中在消息发送时一同发送)
- (可选)data.expire:jwt过期时间,单位:秒(second)。如果设置了expire,解密时会自行根据创建时间(
data.startTime
)判断是否过期。如果过期将返回new Error('JWT expired.')
。
- (可选)data.expire:jwt过期时间,单位:秒(second)。如果设置了expire,解密时会自行根据创建时间(
- (可选)callback(err, jwt):回调函数。
jwt
是成功加密之后的jwt字符串。若不传入该回调函数,则会将jwt数据直接return回来。
const { encodeJWT } = require('fd-simple-jwt');
const options = {
secretKey: 'secret key', // secret为JWT的秘钥,用户需自行配置妥善保管
};
const data = {
id: 123,
};
const jwt = encodeJWT(options, data);
fd-simple-jwt
方法第三个参数传入一个回调函数即为异步方法,回调函数贯彻错误先行原则,第一个参数为err
,如果在方法执行过程中出现错误,该err
参数为一个Error
实例;否则为null
。第二个参数为成功生成的jwt。(如果失败或错误,则回调函数不会存在第二个形参,此时的jwt
变量为undefined
)
const { encodeJWT } = require('fd-simple-jwt');
const options = {
secretKey: 'secret key', // secret为JWT的秘钥,用户需自行配置妥善保管
};
const data = {
id: 123,
};
encodeJWT(options, data, function(err, jwt) {
console.log(jwt);
})
解密JWT字符串。
decodeJWT
接收2~3个参数:
- (必须)jwt:所需解密的jwt字符串。
- (必须)secretKey:加密/解密的秘钥。
- (可选)callback(err, data):回调函数。
data
是成功解密之后,jwt数据体中的数据。若不传入该回调函数,则会将解密的数据直接return回来。
const { decodeJWT } = require('fd-simple-jwt');
const jwt = '...'; // 该值为生成的jwt字符串
const options = {
secretKey: 'secret key',
};
const result = decodeJWT(jwt, options.secretKey);
const { decodeJWT } = require('fd-simple-jwt');
const jwt = '...'; // 该值为生成的jwt字符串
const options = {
secretKey: 'secret key',
};
decodeJWT(jwt, options.secretKey, function(err, data) {
console.log(data);
})