admin.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. const router = require('express').Router();
  2. const api_admin_router = require('./admin_api');
  3. const checkLogin = require('../middleware/checkLogin');
  4. const field = require('../maps/field')
  5. const c_user = require("../controller/account");
  6. const code = require("../maps/rcodeMap");
  7. const progress = require("../maps/progress");
  8. const paramsCheck = require("../middleware/paramsCheck");
  9. // 管理员主页
  10. router.get('/',
  11. checkLogin(field.adminType,'view'),
  12. function(req, res, next) {
  13. res.send('respond with a resource');
  14. });
  15. // 管理员登陆页
  16. router.get('/login',
  17. function(req, res, next) {
  18. res.send('respond with a resource');
  19. });
  20. // 登陆接口
  21. router.post('/login',
  22. paramsCheck({
  23. post:{
  24. account:{required:true},
  25. passwd:{required:true},
  26. captcha: { required: true }
  27. }}),
  28. async (req,res)=>{
  29. try{
  30. console.log('登录')
  31. // 用户登陆
  32. let result = {
  33. rcode: code.customError
  34. };
  35. // 提前检查验证码是否正确
  36. if (req.body.captcha.toLowerCase() != req.session.captcha) return res.json({...result, msg: `验证码错误,captcha error` });
  37. let results = await c_user.login(field.adminType,req.body.account,req.body.passwd);
  38. console.log(results);
  39. req.session[progress.adminSessionField] = results;
  40. res.json({
  41. rcode: code.ok,
  42. data: results
  43. })
  44. }catch (error) {
  45. if (error.rcode !== code.customError) {
  46. console.log(error);
  47. console.log.error(`login error ${error.message||error.msg}`);
  48. }
  49. res.json({
  50. rcode: error.rcode || code.serverError,
  51. msg: error.msg || error.message
  52. });
  53. }
  54. })
  55. // 退出登陆
  56. router.post('/logout',
  57. async (req,res)=>{
  58. try{
  59. req.session[progress.adminSessionField] = null;
  60. res.json({
  61. rcode: code.ok,
  62. })
  63. }catch (error) {
  64. if (error.rcode !== code.customError) {
  65. console.log(error);
  66. console.log.error(`logout error ${error.message||error.msg}`);
  67. }
  68. res.json({
  69. rcode: error.rcode || code.serverError,
  70. msg: error.msg || error.message
  71. });
  72. }
  73. });
  74. // 后台相关接口
  75. router.use('/api',checkLogin(field.adminType),api_admin_router)
  76. module.exports = router;