express-9-登錄

/app.js

var http = require("http");

var express = require("express");

var cookieParser = require("cookie-parser");

var session = require("express-session");

var bodyParser = require("body-parser");

var fs = require("fs");

//得到app對象並啓動服務

var app = express();

htttp.createServer(app);

//設置服務器啓動的端口號

app.set(“port”,8080);

//指定視圖目錄

app.set("views","./public/views");

//緩存視圖

app.set(“view cache”,true);

//設置視圖引擎

app.set("view engine","ejs");


//指定靜態文件的目錄

app.use(express.static(__dirname+"/public"));

//post方式提交數據解析

app.use(bodyParser.ulencoded({extendend:true}))

//解析cookie

app.use(cookieParser());

//根據cookie獲取內存中的session

app.use(session({

secret:'my_login_demo',

cookie:{secure:false,maxAge:30*60*1000}

}))

//自定義中間件,用於判斷用戶是否登錄和能否登錄

app.use(function(req,res,next){

if(req.session.user){

next();

}else{

var name = req.body.name //獲取用戶名值noLogin

var pwd = req.body.password; //獲取密碼值

var noLogin = req.body.noLogin;//獲取是否選擇免登錄

var cookies = req.cookies;//獲取所有cookie

if((name === "xiaoming" && pwd==="1234") || (cookies.name ==="xiaoming" && pwd === "1234") ){

//當前客戶端免登錄

if(noLogin == 'on'){

res.cookid('name',name,{maxAge:2*7*24*60*60*1000})

res.cookie('pwd',pwd,{maxAge:2*7*24*60*60*1000})

}

req.session.user={name:name,pwd:pwd}

next();

}else{

res.set("content-type","text/html");

res.status(200).sendFile(__dirname+"/public/html/login.html")

}

}

})


app.get("/comment",function(req,res){

console.log("=====");

res.set("content-type","text/plain;charset=utf-8")

res.end("登錄成功");

})

app.listen(app.get(“port”),function(){

console.log("listen on "+app.get("port"))

})



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章