后台管理实现
上一篇文章已经概述了博客文章的展示以及评论的发布于展现,这里我将来向大家阐述博客系统的后台管理,主要分为登录页面,检查登录信息,新增文章,审核评论等功能。
后台登录页面
先来看下登录页面,这里我还是采用的bootstrap的组件来实现页面的搭建,不得不说这种根据类名改变样式确实比较方便,但是需要引入jq,而且好像现在没有人继续维护了,时代已经过去了😭。这里我引用了一个页头组件和form-group组件,然后就是写里面的form表单了,通过form表单来提交到对应的接口。
后台登录接口,通过express来展示html文件,这里我重新开了个脚本来写后台管理的这些接口,到时候index.js记得引入
// 登陆页面
router.get('/login', (req, res) => {
res.sendFile(path.resolve('./static/login.html'))
})
然后就是判断我们的账号密码接口了,这里我们就直接在代码里比较了不在数据库比较了,这里我们又封装了一个cookie的类,下面会详细说明的,这里就是一旦账号密码准确就给它一个设置一个cookie。
// 判断登录数据
router.post('/login', urlencodedParser, (req, res) => {
if (req.body.username == 'admin' && req.body.password == 'admin') {
// 登陆成功给权限
res.cookie('token', admin.getToken())
// 重定向
res.redirect('/admin')
} else {
res.status(403).send('账号密码错误登录失败')
return
}
})
设置cookie
向qq登录一样,你一旦登录到qq会记住你的登录状态,不用每次刷新或者看别的页面需要重新登陆,而且通过设置cookie会保护你的安全,管理者的页面,以及相应操作都会见检查你之前设置的cookie值。这里直接放代码。
// 由于cookie设置的唯一,所以要对cookie进行设置,检查,删除,以防止泄露
// 动态token
class cookieControl {
constructor() {
this.tokenArr = []
}
getToken() {
var token = ''
var str = '1234567890qwertyuiopasdfghjklzxcvbnm'
for (var i = 0; i < 16; i++) {
if (i % 5 == 0 && i != 0) {
token += '-'
}
token += str[parseInt(Math.random() * str.length)]
}
this.tokenArr.push(token)
return token
}
checkToken(token) {
for (var i = 0