index.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. const express = require('express');
  2. const router = express.Router();
  3. const { User } = require('../models');
  4. const { tokenStore } = require('../common/token');
  5. const { allowRegister } = require('../middlewares/web_auth');
  6. const config = require('../config');
  7. router.get('/', (req, res, next) => {
  8. res.render('index', {
  9. message: req.flash('message'),
  10. });
  11. });
  12. router.get('/login', (req, res, next) => {
  13. res.render('login');
  14. });
  15. router.post('/login', async (req, res, next) => {
  16. let user = {
  17. username: req.body.username,
  18. password: req.body.password,
  19. };
  20. let message = '';
  21. res.locals.isErrorMessage = true;
  22. try {
  23. user = await User.findOne({ where: user });
  24. if (user) {
  25. req.session.user = user;
  26. req.flash(
  27. 'message',
  28. `欢迎${user.isAdmin ? '管理员' : '普通'}用户 ${
  29. user.username
  30. } 登陆系统!`
  31. );
  32. return res.redirect('/');
  33. } else {
  34. message = '用户名或密码错误';
  35. }
  36. } catch (e) {
  37. console.error(e);
  38. message = e.message;
  39. }
  40. res.render('login', {
  41. message,
  42. });
  43. });
  44. router.get('/logout', (req, res, next) => {
  45. req.session.user = undefined;
  46. req.flash('message', '已退出登录');
  47. res.redirect('/');
  48. });
  49. router.get('/register', allowRegister, (req, res, next) => {
  50. res.render('register');
  51. });
  52. router.post('/register', allowRegister, async (req, res, next) => {
  53. let user = {
  54. username: req.body.username,
  55. password: req.body.password,
  56. };
  57. try {
  58. user = await User.create(user);
  59. } catch (e) {
  60. console.error(e);
  61. }
  62. });
  63. router.post('/configure', async (req, res, next) => {
  64. let user = {
  65. username: req.body.username,
  66. password: req.body.password,
  67. accessToken: req.body.accessToken,
  68. email: req.body.email,
  69. prefix: req.body.prefix,
  70. wechatAppId: req.body.wechatAppId,
  71. wechatAppSecret: req.body.wechatAppSecret,
  72. wechatTemplateId: req.body.wechatTemplateId,
  73. wechatOpenId: req.body.wechatOpenId,
  74. wechatVerifyToken: req.body.wechatVerifyToken,
  75. };
  76. try {
  77. user = await User.create(user);
  78. tokenStore.set(user.prefix, {
  79. appId: user.wechatAppId,
  80. appSecret: user.wechatAppSecret,
  81. templateId: user.wechatTemplateId,
  82. openId: user.wechatOpenId,
  83. wechatVerifyToken: user.wechatVerifyToken,
  84. token: '',
  85. });
  86. } catch (e) {
  87. console.error(e);
  88. }
  89. });
  90. module.exports = router;