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;
时间: 2024-10-06 09:44:11

Nodejs后台管理员登录实例的相关文章

修改 wordpress 后台管理员登录地址

拷贝根目录下的 wp-login.php文件命名为wp-login.php.backup,把原文件重命名为managewp.phpsed -i "s/wp-login.php/managewp.php/g" /home/youwebsite.com/public_html/ managewp.php 打开 wp-includes/ 目录下的 general-template.php 文件把其中的 wp-login.php 全部替换为 admin.php 打开 wp-includes/

后台用户管理(管理员登录后管理会员)

[预备知识] 一.PHP访问MySQL数据库 1.连接到MySQL数据库 $conn=mysql_connect("localhost","root","") or die ("数据库服务器连接失败"); 2.选择数据库 mysql_select_db("db_shop",$conn) or die("数据库访问错误"); 3.执行SQL查询语句 mysql_query("se

php实现管理员登录功能

打开Dreamweaver cs6,添加以下代码: <? if($_POST[user])                 //判断是否输入用户名 { $name=$_POST["user"];                 //获取登录用户名 $pass=$_POST["pass"];                 //获取登录密码 require "ch16-1.php";                  //引用配置文件 $li

如何延长zencart1.5后台的登录时间而不退出

2012-12-25 使用过zencart1.5版本的人都知道,后台登陆后,如果没有任何操作的话最长15分钟后就自动退出,这个对于后台管理是比较麻烦的.这个是zencart1.5在安全性上做的一个改进,后台设置的最大就是15分钟.很多人都希望延迟这个后台登陆的时间.那么怎么样才能让后台登陆的时间久一点而不自动退出呢?这个可以通过修改代码来实现延长这个后台管理员会话时间. 打开文件includesfunctionssessions.php///////////////////// if (IS_A

多个业务系统后台单点登录打通的实现

公司的业务后台系统, 快十来个了. 每个系统的后台管理员表都不一样,拥有的权限也不一样. 不是每个后台管理员都能登录全部系统的.有的能登录一.两个,有的能登录七.八个. 现在要解决的问题是,如何从一个登录进入,让其能在他拥有帐号的其他系统中免登录呢? 我是这么解决的. 1.统一用户名,用户名一定是唯一的.2.另建一个数据库,有三张表.表前缀略.User表,字段:uid,username,password,status,User_website表, 字段 uid,widWebsite表,字段 wi

管理员登录系统后,却加载为TEMP用户的解决办法

win2008R2登录时要加载用户资料.可能是因为不能加载临时换成temp用户. 此时原来的Profile的文档并未丢失,只是以另一个用户登陆系统而已.但是需要同时注意的是,那也就意味着你做的任何变更,增加文件,更改背景等都将在注销后失效,不会保存. 遇到这个问题,可以尝试下先重启电脑,如果无法解决,可以根据以下步骤修改注册表. 1. 备份注册表2. 使用别的管理员账号登陆系统(并不是发生问题的那个)3. 如果用户Profile文件夹仍然存在,备份该Profile文件夹,然后删除.(Profil

nodejs+express+ejs+mongoose实例

nodejs+express+ejs+mongoose实例 nodejs学得异常痛苦,在这里将学的东西做一番整理,算是自我安慰吧.根据网上todo示例,用express和mongoose重写了部分代码,主要是业务逻辑这块(CRUD),这个没什么难度.目前尚未解决的问题是:express不能使用ejs layout template,查了好久也没解决,知道的麻烦告诉我一下. 一.代码目录 二.第三方模块 1.express (1)express中文入门指引手册 (2)nodejs中文电子书 (3)

Struts2自定义拦截器Interceptor以及拦截器登录实例

1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor{ private static final long serialVersionUID = 1L; public void destroy() { } public void init() {} public String intercept(ActionInvocation arg0) throws

SSO 基于CAS实现单点登录 实例解析(二)

本文目录: 概述 演示环境 部署CAS-Server相关的Tomcat 部署CAS-Client相关的Tomcat 测试验证SSO 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机 <span style="font-size:18px;"># 127.0.0.1 localhost # ::1 localhost 127.0.0.1 localhost 127.0