koa项目中安装jsonwebtoken
yarn add jsonwebtoken -D
简单实现一个登录成功并且生成token返回
controller\user.js文件
/*
当前文件为user接口系列的业务逻辑层
*/
const { User } = require('../models');
//jsonwebtoken引入
const jwt = require('jsonwebtoken');
const {
findOne,
} = require('./crudUtil');
// 登录
const userLogin = async (ctx) => {
const password = ctx.request.body.password;
const username = ctx.request.body.username;
// 先查询用户账号密码是否存在
const findResult = await User.findOne({ password, username });
// 登录成功
if (findResult !== null) {
// 生成token
const payload = {
id: findResult._id, //个人用户id
name: findResult.username, //用户名称
avatar: findResult.avatar, //头像图路径
};
//token生成 payload 生成规则参数 secret key名称 自定义即可 expiresIn token有效时间设置
const token = jwt.sign(payload, "secret", { expiresIn: 3600 });
// 返回token
ctx.body = {
code: 0,
msg: '登录成功',
token: `Bearer ${token}`,
};
} else {
// 账号或者密码不存在
ctx.body = {
code: 404,
msg: '账号不存在,请注册',
};
}
};