app.post('/admin/api/login',async(req,res) => {
const {username,password} = req.body;
//1.根据用户名找用户
const user = await AdminUser.findOne({username}).select('+password');
if(!user){
return res.status(422).send({
message:'用户不存在'
})
}
//2.校验密码
const isValid = require('bcrypt').compareSync(password,user.password);
if(!isValid){
return res.status(422).send({
message:'密码错误'
})
}
//3。返回token
//app.get('secret'))因为与路由请求一样,
//所以一个参数是获取secret数据,两个参数则是路由
const token = jwt.sign({id:user._id},app.get('secret'))
res.send({token})
})
4、全局设置密钥
app.set('secret','i2u3y4t5r7');
5、前端获取token进行存储
async login(){
const res = await this.$http.post('login',this.model);
localStorage. token = res.data.token;
}