vlambda博客
学习文章列表

koa框架下Token的生成和验证机制

本文采用了中间件的方式,简单方便


1、首先安装jsonwebtoken第三方模块 npm i jsonwebtoken

2、使用koa-jwt 安装npm i koa-jwt

3、token的生成

/* 获取一个期限为1小时的token */

function getToken(userInfo) {

    let payload = {username: userInfo.username, id: userInfo._id, time: new Date().getTime(), timeout: 3600*1000}

    const secret = "token_tenantManage"

    const accessToken = jwt.sign(payload, secret, {expiresIn: "1h"})

    // return jwt.sign(payload, secret, { expiresIn: '4h' });

    return accessToken

}

4、判断token是否合法

function isTokenValid(token) {

    // 验证并解析JWT

    const secret = "token_tenantManage"

    var payload

    try {

        payload = jwt.verify(token, secret);

        console.log('payload:',payload)

    } catch (error) {

        payload = ''

        return false

    }

    let {username, id, time, timeout } = payload;

    let data = new Date().getTime();

    if (data - time <= timeout) {

        return true

    } else {

        return false

    }

}


5、采用中间件的方式

在app.js中添加

const check = require('./middleware/tokenCheck')

app.use(check)


新建tokenCheck.js文件