思路:
直接訪問后台頁面時如果無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);