admin.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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.account;
  40. res.json({
  41. rcode: code.ok,
  42. data: results.account
  43. })
  44. }catch (error) {
  45. if (error.rcode !== code.customError) {
  46. console.log(error);
  47. console.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.get('/logout',
  57. async (req,res)=>{
  58. try{
  59. req.session[progress.adminSessionField] = null;
  60. res.redirect(302,progress.adminLoginUrl)
  61. }catch (error) {
  62. if (error.rcode !== code.customError) {
  63. console.log(error);
  64. console.log.error(`logout error ${error.message||error.msg}`);
  65. }
  66. res.json({
  67. rcode: error.rcode || code.serverError,
  68. msg: error.msg || error.message
  69. });
  70. }
  71. });
  72. // 后台相关接口
  73. router.use('/api',checkLogin(field.adminType),api_admin_router)
  74. module.exports = router;