Nodejs后台管理员登录实例

Posted tinyphp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于Nodejs后台管理员登录实例的主要内容,如果未能解决你的问题,请参考以下文章

PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证

nodejs中间件拦截,express不登录无法进入后台页面

使用nodejs express mysql登录系统

nodejs常用代码片段

Nodejs学习总结 -Express 登录注册实例

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面