1、登录流程
登录时候先验证用户是否存在
再验证密码,和存储用户的加密密码是否一致,此处用到插件bcryptjs
现在tools.js中写上验证方法:
const bcrypt = require('bcryptjs')const tools = {// 查询密码一致性,返回布尔值compareSync(p1, p2) {const result = bcrypt.compareSync(p1, p2)return result}}module.exports = tools
使用的时候:
/*** 输入手机号密码作为登录的账号和密码**/router.post("/login", async ctx => {// 先查询账号是否存在const [user] = await User.find({phone: ctx.request.body.phone})// 获取传过来的密码const {request:{body:{password}}} = ctxif(user) {// 查询到账号后验证密码一致性const result = tools.compareSync(password, user.password)if (result) {ctx.status = 200ctx.body = {code: 200,msg: '登录成功'}} else {ctx.status = 400ctx.body = {code: 400,msg: '密码错误'}}} else {ctx.status = 404ctx.body = {code: 404,msg: '用户不存在'}}})
postman模拟结果如图:
2、access_token鉴权
用node做开发,往往需要在登录后像前段返回token,然后前段将获取到的token放在header的Authorization上。
相关内容在下一章。
