思路:

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

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

  1. ApachShiro 一个系统 两套验证方法-(后台管理员登录、前台App用户登录)同一接口实现、源码分析

    需求: 在公司新的系统里面博主我使用的是ApachShiro 作为安全框架.作为后端的鉴权以及登录.分配权限等操作 管理员的信息都是存储在管理员表 前台App 用户也需要校验用户名和密码进行登录.但是 ...

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

    拷贝根目录下的 wp-login.php文件命名为wp-login.php.backup,把原文件重命名为managewp.phpsed -i "s/wp-login.php/managew ...

  3. SpringSecurity实现后台管理员登录(二)

    需求:login.ftl页面中登录成功后进入index.ftl页面中 一.pom.xml中添加json转换相关的包 <dependency> <groupId>com.fast ...

  4. Spring Security实现后台管理员登录(一)

    一.实现功能 二.数据表设计 为了测试方便,这里创建一个简单的数据表,只含有name和password两个字段.至于角色,权限等,这里都先不考虑. 插入一条数据,name为admin,password ...

  5. discuz管理员登录进入后台管理马上跳转到登录界面

    昨天尝试了一下这个discuz论坛,感觉还可以.今天刚刚用管理员账户进入后台管理,准备改一改界面熟悉一下,过不了10秒钟.老是马上就退出来了.我想起来了,昨天是在阿里云服务器上面直接登录这个管理员账号 ...

  6. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  7. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  8. 学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出

    1.管理员登录 在6.1中已添加控制器[AdministratorController] 在控制器中添加[Login()]action,用来显示登录页面 /// <summary> /// ...

  9. 我的第一个python web开发框架(14)——后台管理系统登录功能

    接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...

随机推荐

  1. 轻松读懂MSIL

    原文:http://www.cnblogs.com/brookshi/p/5225801.html

  2. shell expect权威指南和实战

    一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而expec ...

  3. linux 搜索文件

    https://blog.csdn.net/json_ligege/article/details/72865645 1.find   find是最常见和最强大的查找命令,你可以用它找到任何你想找的文 ...

  4. pytest十五:pytest-html 生成 html 报告

    pytest-HTML 是一个插件,pytest 用于生成测试结果的 HTML 报告.兼容 Python 2.7,3.6 pytest-html1.github 上源码地址[https://githu ...

  5. python+selenium二:定位方式

    # 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...

  6. python 全栈开发,Day135(爬虫系列之第2章-BS和Xpath模块)

    一.BeautifulSoup 1. 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: ''' Beautiful Soup提供一些简单 ...

  7. Linux学习笔记:使用ftp命令上传和下载文件

    Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹.虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器.SSH.远程会话中掌握命令行ftp的使用 ...

  8. xxx is not in sudoers file 解决(转)

    解决方案:首需要切换到root身份$su -(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用& ...

  9. hdu 1875 给出每个结点的坐标 权值为两点间的距离 (MST)

    Sample Input2210 10 //坐标20 2031 12 21000 1000 Sample Output1414.2   //最小权值和*100  保留1位小数oh!       //不 ...

  10. 攻击图生成工具mulval的安装和配置

    https://doc.mbalib.com/view/8620168b35e50fbe9b005fee33c192ad.html http://www.bingbig.com/227.html