Nodejs后台管理员登录实例

思路:

直接访问后台页面时如果无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);

原文地址:https://www.cnblogs.com/tinyphp/p/7220006.html