1 checkLoginMiddleware.js
module.exports = (req, res, next) => {
if(!req.session.username){
return res.redirect('/login');
}
next();
}
2 auth.js
var express = require('express');
var router = express.Router();
const UserModel = require('../../models/UserModel');
const md5 = require('md5');
router.get('/reg', (req, res) => {
res.render('auth/reg');
});
router.post('/reg', (req, res) => {
UserModel.create({...req.body, password: md5(req.body.password)}, (err, data) => {
if(err){
res.status(500).send('注册失败, 请稍后再试~~');
return
}
res.render('success', {msg: '注册成功', url: '/login'});
})
});
router.get('/login', (req, res) => {
res.render('auth/login');
});
router.post('/login', (req, res) => {
let {username, password} = req.body;
UserModel.findOne({username: username, password: md5(password)}, (err, data) => {
if(err){
res.status(500).send('登录, 请稍后再试~~');
return
}
if(!data){
return res.send('账号或密码错误~~');
}
req.session.username = data.username;
req.session._id = data._id;
res.render('success', {msg: '登录成功', url: '/account'});
})
});
router.post('/logout', (req, res) => {
req.session.destroy(() => {
res.render('success', {msg: '退出成功', url: '/login'});
})
});
module.exports = router;
3 app.js
const authRouter = require('./routes/web/auth');
app.use('/', authRouter);
app.use(function(req, res, next) {
res.render('404');
});
4 设置公益404:404.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>404</title>
</head>
<body>
<script src="//volunteer.cdn-go.cn/404/latest/404.js"></script>
</body>
</html>