一个vue+express 构建的后台管理系统@H_301_1@
说明:
@H_301_1@vue+express 构建的后台管理系统,包括登录、注册、表格的增删改查@H_301_1@
搭建vue项目:
@H_301_1@1.安装vue-cli脚手架@H_301_1@
2.创建基于webpack模版的项目@H_301_1@
3.安装包依赖并运行@H_301_1@
vue项目基于iview-admin改造的
@H_301_1@通过应用生成器工具 express创建一个应用的骨架:@H_301_1@
1.连接数据库
@H_301_1@在config创建db.js@H_301_1@
function query(sql,data,callback){
// connection.connect()
// pool.getConnection(function(err,connection){
connection.query(sql,function (err,rows) {
callback(err,rows);
// connection.release();
// connection.end()
});
// });
}
exports.query = query;
2.加入token验证
@H_301_1@安装jsonwebtoken@H_301_1@
在config创建token.js@H_301_1@
// 签发 Token
let tokens = crypto.sign(payload,secret,{ expiresIn: 3600})
return tokens;
},decodeToken:function(tokens){
console.log(tokens)
let res = false;
crypto.verify(tokens,decoded) {
if(err){
res = {'flag':false,'decoded':decoded}
}else{
res = {'flag':true,'decoded':decoded}
}
})
return res;
},checkToken:function(token){
var resDecode=this.decodeToken(token);
if(!resDecode){
return false;
}
//是否过期
var expState=(parseInt(Date.now()/1000)-parseInt(resDecode.payload.created))>parseInt(resDecode.payload.exp)?false:true;
if(resDecode.signature===resDecode.checkSignature&&expState){
return true;
}
return false;
}
};
module.exports=exports=token;
在app.js验证token是否过期,过去返回401@H_301_1@
next()
}else{
if (req.method != "OPTIONS"){
var accesstoken = req.headers['access_token'];
let datatoken = token.decodeToken(accesstoken)
// console.log(data)
if(datatoken.flag){
next()
}else{
data.Meta.code=401;
res.send(data)
}
}else{
next()
}
}
});
项目部署:@H_301_1@
1.将vue项目打包后放在express项目public文件夹下,通http://localhost:3000即可以访问。@H_301_1@
2.部署阿里云@H_301_1@
创建实例@H_301_1@