jsonwebtoken使用方法
const jtw = require('jsonwebtoken')
// 用于加解密的密钥
const secretkey = 'my_token'
// 生成token
// 接收三个参数:
// 第一个是载荷,用于编码后存储在 token 中的数据,也是验证 token 后可以拿到的数据;
// 第二个是密钥,自己定义的,验证的时候也是要相同的密钥才能解码;
// 第三个是options,可以设置 token 的过期时间。例如: { expiresIn: '2h'}、{ expiresIn: '1day' },
function getToken() {
const token = jtw.sign({
name: 'jack',
id: '1000'
}, secretkey, { expiresIn: '72h'})
console.log('生成token:', token)
return token
}
// 解析token
function Decryption(token) {
return new Promise(resolve=> {
jtw.verify(token, secretkey, (err, data) => {
if (err) {
console.log('err:', err)
return resolve(null)
}
console.log('解析token:', data)
resolve(data)
})
})
}
const token = getToken()
Decryption(token)
AES 加密
const cryptojs = require('crypto-js')
const secretkey = 'secret key 123'
/**
* 加密
* @param {string} data
*/
function encryption(str) {
const res = cryptojs.AES.encrypt(str, secretkey).toString()
console.log('加密内容:', res)
return res
}
/**
* 解密
* @param {string}} data
*/
function decryption(str) {
const bytes = cryptojs.AES.decrypt(str, secretkey)
const res = bytes.toString(cryptojs.enc.Utf8)
console.log('解密内容:', res)
return res
}
module.exports = {
encryption,
decryption
}
文章仅代表个人观点,如有任何疑问或疏漏之处,欢迎随时评论留言。