思路:

直接访问后台页面时如果无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. python的MD5

    import hashlib def md5(str0): hl = hashlib.md5()# 创建md5对象 hl.update(str0.encode(encoding='utf-8'))#此 ...

  2. OCM_第二天课程:Section1 —》配置 Oracle 网络环境

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  3. 关于z-index的那些事儿

    关于z-index的真正问题是,很少有人理解它到底是怎么用.其实它并不复杂,但是如果你从来没有花一定时间去看具体的z-index相关文档,那么你很可能会忽略一些重要的信息. 不相信我吗?好吧,看看你能 ...

  4. 洛谷P2239 螺旋矩阵

    传送门 分析:将整个矩阵看成 "回" 形状的分层结构,然后进行去层处理,使得要求得 \((i,j)\) 处于最外层,然后再分情况讨论.最外面的一层共有数: $ 4 * n - 4 ...

  5. php单例模式的实例

    class Config1 {} class Config { * 必须先声明一个静态私有属性:用来保存当前类的实例 * 1. 为什么必须是静态的?因为静态成员属于类,并被类所有实例所共享 * 2. ...

  6. git提交本地分支到远程分支

    git提交本地分支到远程分支   git 常用命令(含删除文件) Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/j ...

  7. Windows安装使用Openssl

    1.什么是openssl? 2.下载安装 三方下载地址 备用64位和32位下载地址 选择32位或者64位合适的版本下载,例如Win64OpenSSL_Light-1_0_2h.exe: 设置环境变量, ...

  8. python+selenium+Jenkins构建自动化测试

    环境准备 本次使用JDK:1.8.tomcat:8.5.Jenkins:2.127 安装jdk 官方下载地址 安装教程参考 安装tomcat 和jenkins tomcat官方下载地址 jenkins ...

  9. python 全栈开发,Day92(编程式的导航,vue页面布局,marked包的使用)

    昨日内容回顾 1. 组件间的传值 1. bus --> 空Vue对象 通过向bus对象抛出自定义事件的方式在组件间传递信息 2. 注意事项: 1. bus.$on()应该在组件mounted(挂 ...

  10. BBC记录片之非洲4