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,
};
});