Skip to content

Koa 中生成 token

JWT 简介

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准。

注册必然要产生 token,这是用户的登录凭证。JWT 的官网地址

一个 JWT 实际上就是一个字符串,它由三部分组成,头部、载荷与签名。

安装

sh
npm i jsonwebtoken -S

生成 token

javascript
const jwt = require("jsonwebtoken");

// 根据username和password生成token
let token = jwt.sign(
  { username, password }, // 携带信息
  "sceret", // 秘钥
  { expiresIn: "1h" } // 有效期:1h一小时
);

鉴权

javascript
const auth = async (ctx, next) => {
  try {
    // let result = jwt.verify(token,'zhaowenxian')//解构
    jwt.verify(token, "sceret"); //验证
  } catch (err) {
    //try中报错就会走catch,
    ctx.body = {
      code: 500,
      message: "token无效或登录已过期",
    };
    return;
  }
  await next(); //放行函数,继续往下走
};
router.get("/api/edit", auth, async (ctx, next) => {
  //在参数里执行
  //需要权限才加auth,没有next()放行函数,不会往下走
  ctx.body = {
    code: 200,
  };
});