node.js加密token(jsonwebtoken)

32 篇文章 0 订阅
29 篇文章 0 订阅

每一个app都要有用户,而有用户就要有每个用户单独的token。

jsonwebtoken是一个可以加密生成token和解密token的中间件。

npm install jsonwebtoken --save安装

我将这个过程封装到了一个中间件中并通过个koa2框架使用

const jwt        = require('jsonwebtoken')
module.exports = function () {
    return async function (ctx,next) {
        //jwt生成token
        var name = {name: 'hongweijiang'}
        const token = await jwt.sign(name, '123345', { expiresIn: 3600})
        console.log(token.split('.')[2])//token为3部分用’.‘分开最后一个是随机字符串

        //jwt解密token
        await jwt.verify(token, '123345', function (err, decoded) {
            if (!err){
                console.log(decoded.name);  //会输出hongweijiang,如果过了60秒,则有错误。
            }
        })
        await next()
    }
}

入口文件

const Koa        = require('koa')                           //引入koa框架
const app        = new Koa()                                //实例化koa
const jwt        = require('./middleware/jwt-token')        //token加密和解密
app.use(jwt())                                              //token的解密和加密中间件的使用

jwt.sign传入用户信息和自定义的私人秘钥生成的token是一串通过‘.’隔开的三个字符串,将字符串split('.')分开取最后一个作为token。(例如eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiaG9uZ3dlaWppYW5nIiwiaWF0IjoxNTUwOTE1NDkxLCJleHAiOjE1NTA5MTkwOTF9.DHC5rZOW6bQY4AO-w1F8PArXbdusJ5zcvUrUq88Rusw
token:DHC5rZOW6bQY4AO-w1F8PArXbdusJ5zcvUrUq88Rusw

jwt.verify通过jwt.sign生成的token和之前自定义的私人秘钥解密成用户信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值