login.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // 引入User
  2. const {User} = require('../../model/user');
  3. // 引入加密模块
  4. const bcrypt = require('bcrypt');
  5. module.exports = async (req, res) => {
  6. let data = req.body;
  7. if(data.email.trim().length == 0 || data.password.trim().length == 0){
  8. res.status(400).render('admin/error', {
  9. msg: '邮件账号或者密码错误'
  10. })
  11. }else{
  12. // user is object or null
  13. let user = await User.findOne({email: data.email});
  14. const isValid = await bcrypt.compare(data.password, user.password)
  15. if(user && isValid){
  16. // 将用户名存储到session请求对象
  17. req.session.username = user.username;
  18. // 将用户角色存储到session请求对象
  19. req.session.role = user.role;
  20. req.app.locals.userInfo = user;
  21. // 对用户的角色进行判断
  22. if(user.role == 'admin'){
  23. res.redirect('/admin/user')
  24. }else {
  25. res.redirect('/home/');
  26. }
  27. }else {
  28. res.status(400).render('admin/error', {
  29. msg: '邮件账号或者密码错误'
  30. })
  31. }
  32. }
  33. }