![Nodejs后台管理员登录实例 Nodejs后台管理员登录实例](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
思路:
直接访问后台页面时如果无session则跳转到404
当在登录页的表单提交时对数据库进行匹配,匹配成功生成session,否则提示用户名或密码错误
准备页面 :后台首页、登录页、404页,
步骤:
1、初始化项目session
2、打通路口
3、连接数据库
4、表单配对
5、session判断
核心代码:
未登录情况下访问后台首页会跳转至404页面
后台页面的js判断:
$(document).ready(function() {
//未登陆自动跳转到登陆页
if (sessionStorage.getItem("admin") !== "1") {
location.href = "/admin/404/";
}
登录成功后调整到后台首页并生成session,表单提交的js判断
$(document).ready(function() {
//登录表单文本框装饰效果
$('.g-inputTxt').click(function(){
$('.g-inputTxt').removeClass('g-inputTxt-focus');
$(this).addClass('g-inputTxt-focus');
}); }); var verifyCode = new GVerify("v_container"); function ck(){
var username = $('#username').val();
var password = $('#password').val();
var yzm=verifyCode.validate($("#code_input").val());
var result="";
//如果用户名为空
if (username == "") {
$('.loginmsg').text("用户名不为空!");
$('.loginmsg').show();
return false;
} //如果密码为空
if (password == "") {
$('.loginmsg').text("密码不为空!");
$('.loginmsg').show();
return false;
} if(!yzm){
$('.loginmsg').text("验证码不正确!");
$('.loginmsg').show();
return false;
} //传递表单数据
$.ajax({
url:'/admin/logincheck',
type:"post",
data:{
username:username,
password:password
},
async: false,
success:function(flag){
result=flag;
}
});
//根据返回结果判断
if(result=="0"){
$('.loginmsg').text("用户名或密码错误!");
$('.loginmsg').show();
return false;
}else{
sessionStorage.setItem("admin","1");
location.href="/admin/";
return false;
}
}
数据库查询部分
var express = require('express');
var router = express.Router(); var mongoose = require('mongoose');
var userModel = mongoose.model('user'); /* 后台首页 */
router.get('/admin/', function(req, res, next) {
res.render('admin', { title: '后台首页' });
}); /* 检查页 */
/*登录*/
router.post('/admin/logincheck',function(req,res,next){
var username=req.body.username;
var password=req.body.password;
var cond = {
$and:[
{username:username},
{password:password} ]
}
userModel.findOne(cond,function(err,doc){
if(doc==null){
res.send("0");
console.log("登录失败");
}else{
res.send("1");
console.log("登录成功");
} }); }); module.exports = router;
user管理员表增加管理员测试登录
----------------------------------------
var user={"username":"admin","password":"123456"}
db.users.insert(user);