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