思路:

直接访问后台页面时如果无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. bert 词典扩充方案

  2. Windows 2012 安装 Oracle 11g 报错:[INS-13001]环境不满足最低要求。

    问题: 在Windows Server 2012 安装上 Oracle 11g 时,安装程序报错:[INS-13001]环境不满足最低要求. 分析原因: Oracle 在发布 11g时,Winodws ...

  3. java 判断字符串什么编码类型

    public static String getEncoding(String str) { String encode = "GB2312"; try { if (str.equ ...

  4. Flink(二)CentOS7.5搭建Flink1.6.1分布式集群

    一. Flink的下载 安装包下载地址:http://flink.apache.org/downloads.html  ,选择对应Hadoop的Flink版本下载 [admin@node21 soft ...

  5. 高版本js实现live

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 胜利大逃亡 HDU1429 (bfs)

    最后两题算是这个专题最难的两题了 这题关键是标记数组 我一开始设置的是 四维的  第三维是朝向  第四维是钥匙个数 但是 不同的取法钥匙个数可能会重复   如:取ab钥匙和取ac钥匙都是两枚  导致w ...

  7. 6-8 树 uva548

    read 的方式值得学习 当不知道每一行有多少个输入的时候 getline  在弄成stringstream!一个一个处理 用built递归的方式化大为小进行建立树 dfs 遍历整个树来求最值 变量的 ...

  8. 陈国凯oi历程

    从此成了OI退役狗 说实话,当时NOIP比赛前就想写这篇,结果一直没有足够的动力和时间写,现在高考完了,也有了时间,就写一点东西,记录一下我的OI经历吧. 初入OI 高一时,我是信息技术课代表(当然没 ...

  9. 条件随机场之CRF++源码详解-预测

    这篇文章主要讲解CRF++实现预测的过程,预测的算法以及代码实现相对来说比较简单,所以这篇文章理解起来也会比上一篇条件随机场训练的内容要容易. 预测 上一篇条件随机场训练的源码详解中,有一个地方并没有 ...

  10. Flask使用SQLAlchemy两种方式

    一.SQLAlchemy和Alembic 主要使用原生的SQLAlchemy进行数据库操作和使用Alemic进行数据库版本控制 I 创建数据库主要有三个步骤 创建表的父类/数据库连接/Session ...