1、下载依赖包
npm install koa-jwt
npm install jsonwebtoken
2、写入位置
jsonwebtoken.sign(name,'shhhhh',{expiresIn:'2h'});
shhhh 设置加密方式
expiresIn 设置过期时间
./routers/login.js
const path = require('path');
const Router = require('koa-router');
const router = new Router({ prefix: "/login" });
const Users = require('../models/usersSchema.js')
const jwt = require("koa-jwt");
const jsonwebtoken = require("jsonwebtoken");
router.post('/', async ctx => {
let {name,pwd,imagecode} = ctx.request.body
// console.log(ctx.session.imgcode,111)
let token = jsonwebtoken.sign(name,'shhhhh',{expiresIn:'2h'});
// ctx.response.set('token', token);
console.log(token,222)
// console.log()
let User = await Users.find();
let arr = User[0];
// console.log(arr)
if(User.length>0){
if(arr.name === name &&arr.password === pwd && arr.imagecode === ctx.session.imgcode){
ctx.body={"status":200,"msg":"登录成功",token:token}
}else{
ctx.body={"status":401,"msg":"账号或密码错误"}
}
}else{
ctx.body={"status":404,"msg":"用户不存在"}
}
})
module.exports = router.routes();
3、封装权限文件
./middlewate/usersMiddleware.js
const jwt = require('jsonwebtoken');
const auth = async (ctx, next) => {
const { authorization = '' } = ctx.request.header;
const token = authorization.replace('Bearer ', '');
try {
const user = jwt.verify(token, 'shhhhh');
} catch {
ctx.throw(401, '没有权限!!!')
}
await next()
}
module.exports = {
auth
}
./routers/users.js
const Router = require('koa-router');
const router = new Router({ prefix: '/users2' });
const {auth} = require("../middleware/usersMiddleware")
const { getUserList,
getUser,
createUser,
updateUser,
deleteUser } = require('../controllers/usersControllers')
router.get('/',auth, getUserList)
router.get('/:id',auth, getUser)
router.post('/',auth, createUser)
router.put('/:id',auth, updateUser)
router.delete('/:id', auth,deleteUser)
module.exports = router.routes();
vue请求拦截里面设置