思路:ajax
直接访问后台页面时若是无session则跳转到404数据库
当在登陆页的表单提交时对数据库进行匹配,匹配成功生成session,不然提示用户名或密码错误express
准备页面 :后台首页、登陆页、404页,session
步骤:async
一、初始化项目sessionmongoose
二、打通路口post
三、链接数据库测试
四、表单配对ui
五、session判断this
核心代码:
未登陆状况下访问后台首页会跳转至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);