99 lines
2.4 KiB
JavaScript
99 lines
2.4 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { User } = require('../models');
|
|
const { tokenStore } = require('../common/token');
|
|
const { allowRegister } = require('../middlewares/web_auth');
|
|
const config = require('../config');
|
|
|
|
router.get('/', (req, res, next) => {
|
|
res.render('index', {
|
|
message: req.flash('message'),
|
|
});
|
|
});
|
|
|
|
router.get('/login', (req, res, next) => {
|
|
res.render('login');
|
|
});
|
|
|
|
router.post('/login', async (req, res, next) => {
|
|
let user = {
|
|
username: req.body.username,
|
|
password: req.body.password,
|
|
};
|
|
let message = '';
|
|
res.locals.isErrorMessage = true;
|
|
try {
|
|
user = await User.findOne({ where: user });
|
|
if (user) {
|
|
req.session.user = user;
|
|
req.flash(
|
|
'message',
|
|
`欢迎${user.isAdmin ? '管理员' : '普通'}用户 ${
|
|
user.username
|
|
} 登陆系统!`
|
|
);
|
|
return res.redirect('/');
|
|
} else {
|
|
message = '用户名或密码错误';
|
|
}
|
|
} catch (e) {
|
|
console.error(e);
|
|
message = e.message;
|
|
}
|
|
res.render('login', {
|
|
message,
|
|
});
|
|
});
|
|
|
|
router.get('/logout', (req, res, next) => {
|
|
req.session.user = undefined;
|
|
req.flash('message', '已退出登录');
|
|
res.redirect('/');
|
|
});
|
|
|
|
router.get('/register', allowRegister, (req, res, next) => {
|
|
res.render('register');
|
|
});
|
|
|
|
router.post('/register', allowRegister, async (req, res, next) => {
|
|
let user = {
|
|
username: req.body.username,
|
|
password: req.body.password,
|
|
};
|
|
try {
|
|
user = await User.create(user);
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
});
|
|
|
|
router.post('/configure', async (req, res, next) => {
|
|
let user = {
|
|
username: req.body.username,
|
|
password: req.body.password,
|
|
accessToken: req.body.accessToken,
|
|
email: req.body.email,
|
|
prefix: req.body.prefix,
|
|
wechatAppId: req.body.wechatAppId,
|
|
wechatAppSecret: req.body.wechatAppSecret,
|
|
wechatTemplateId: req.body.wechatTemplateId,
|
|
wechatOpenId: req.body.wechatOpenId,
|
|
wechatVerifyToken: req.body.wechatVerifyToken,
|
|
};
|
|
try {
|
|
user = await User.create(user);
|
|
tokenStore.set(user.prefix, {
|
|
appId: user.wechatAppId,
|
|
appSecret: user.wechatAppSecret,
|
|
templateId: user.wechatTemplateId,
|
|
openId: user.wechatOpenId,
|
|
wechatVerifyToken: user.wechatVerifyToken,
|
|
token: '',
|
|
});
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|