真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

怎么用Session驗證用戶是否已登錄

這篇文章主要介紹“怎么用Session驗證用戶是否已登錄”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么用Session驗證用戶是否已登錄”文章能幫助大家解決問題。

公司主營業(yè)務:成都網站制作、成都網站建設、外貿營銷網站建設、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯(lián)網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出南充免費做網站回饋大家。

node.js中使用session實現:驗證用戶是否已登錄功能并維持用戶的在線狀態(tài)。

目的:用戶必須登錄才能進入商品頁面和購物車頁面,如果不經過登錄就訪問商品頁面會攔截并自動跳轉到登錄頁面。

怎么用Session驗證用戶是否已登錄

   用戶未登錄流程

為什么要用session:Http協(xié)議是無狀態(tài)的,也就導致服務器無法分辨是誰瀏覽了網頁。為了維持用戶在網站的狀態(tài),比如登陸、購物車等,出現了先后出現了四種技術,分別是隱藏表單域、URL重寫、cookie、session。session和cookie都是用來解決Http協(xié)議不能維持狀態(tài)的問題,但是session只存儲在服務器端的,不會在網絡中進行傳輸,所以較cookie來說,session相對安全一些。

結構如圖:

怎么用Session驗證用戶是否已登錄

1.模擬數據庫user.json文件:

{ "username" : "admin", "password" : "admin" }

2.views目錄存放兩個ejs文件:

//login.ejs文件:
    
    
    
    Document
    
        
                
  • 用戶名:
  •             
  • 用戶名:
  •             
  •         
    //product.ejs文件:                    Document     

歡迎您:<%=username%>瀏覽我的頁面。退出登錄

    

這是商品展示界面

首先下載第三方模塊

npm install express--save

npm install express-session--save

npm install body-parser--save

2.核心app.js文件:

(1)引入相關模塊并設置中間件,設置模板引擎:

var express = require("express");var app = express();var user = require("./user.json");//引入模擬數據庫//引入body-parser模塊并設置中間件,以便用req.body來獲取post的傳值var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));//引入express-session模塊并設置中間件
 var session = require("express-session");
app.use(session({
    secret : "nihao",  //加密session,隨便寫
    cookie : {maxAge : 60*1000*30}, //設置過期時間
    resave : true,  //強制保存session 默認為 true,建議設置成false
    saveUninitialized : false ////強制將未初始化的session存儲 默認為true,建議設置成true}));
app.set("view engine", "ejs");//設置模板引擎為ejs,默認從views目錄下查找ejs文件

(2)設置用戶登錄頁面路由

app.get("/login", function(req, res){
    res.render("login.ejs"); //渲染登錄頁面});
app.post("/loginDo", function(req, res){    var usernaem = req.body.username;    var password = req.body.password;    if( usernaem === user.username || password === user.password){
        req.session.userinfo = usernaem; //設置session,表示用戶處在的登錄狀態(tài)
        //app.locals對象用于將數據傳入所有的渲染ejs模板中,用<%=username%>接收
        req.app.locals["username"] = usernaem; 
        res.redirect("/product");
    }else{
        res.send("");//用戶名或密碼不正確
    }
});

(3)使用session判斷用戶是否是登錄狀態(tài),true則允許訪問商品頁面/false則跳轉到登錄頁面

app.use( function(req,res,next){    if( req.session.userinfo ){
        next();
    }else{
        res.send("");
    }
} );

(4)設置商品頁面路由,用戶若想訪問必需通過第三步的攔截

app.get("/product", function(req, res){
    res.render("product.ejs"); //渲染商品頁面});//退出登錄app.get( "/out", function( req, res ){
    req.session.destroy(); //銷毀session,退出登錄
    res.redirect("/login");
} );//設置端口號app.listen(8000, function(){    console.log("success");
});

結束:

用戶若沒有登錄直接訪問“商品頁面(/product)” ,就會進行攔截提示并跳轉到“登錄頁面(/login)”,只有登錄以后才能訪問“商品頁面”。

關于“怎么用Session驗證用戶是否已登錄”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。


新聞名稱:怎么用Session驗證用戶是否已登錄
網頁URL:http://weahome.cn/article/pocdeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部