国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs 的 session 簡單使用

2019-11-20 09:47:10
字體:
來源:轉載
供稿:網友

session的本質使用cookie來實現。

原理大概是:http 帶來服務端提前設置 cookie,服務端拿到標示用戶身份的cookie, 再去固定地點(數據庫,文件)檢索出對應的用戶身份。把身份賦值給本次請求的request,在程序處理中就知曉了用戶的身份了。(在PHP,ASP或者其他服務端語言中都自動幫你實現了)

實現cookie

  需要為每一個用戶設置一個可以標示用戶身份的cookie。可以使用如下規則

  注冊郵箱MD5值+密碼MD5值+隨機碼MD5值。(僅僅舉例,這可能并不是一個好的方案)

服務端代碼片段:

復制代碼 代碼如下:
res.setHeader("Set-Cookie", ["sid="+newUser.toCookie()+";path=/;domain="+config.domain+";expires="+new Date("2030") ]);

cookie

復制代碼 代碼如下:
sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee

使用 cookie 獲取用戶身份,設置session

把所有非靜態資源的請求都定向到這里處理。獲取cookie,把cookie拆分并在數據庫查找符合條件的用戶。最后使用 next 跳轉到下一個請求邏輯。

下一個請求邏輯就可是直接使用 req.session.user 來獲取 user 對象了。

復制代碼 代碼如下:
session:function(req, res, next){
     
    req.session = {};

    if( req.cookies && req.cookies.sid ){

        var a = req.cookies.sid.split("|");

        var hexMail = a[0];
        var hexPwd = a[1];
        var hexRandom = a[2];
       

        UserModel.hexFind(hexMail, hexPwd, hexRandom, function( status ){

            //console.log("hexFind", status );
            if(status.code == "0"){
                //req.cookiesSelecter = cookiesSelecter;
                req.session.user = status.result;
               
            }
            next();
        });
       
    }else{
       
        next();

    } 
 
}

以上就是nodejs 的 session 簡單使用的全部內容,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通辽市| 温宿县| 遵义县| 罗山县| 阳朔县| 临潭县| 博野县| 松溪县| 屯门区| 新郑市| 达尔| 十堰市| 永福县| 峨眉山市| 安溪县| 兴海县| 镇巴县| 阳新县| 民权县| 新疆| 栾城县| 牡丹江市| 阿荣旗| 峨眉山市| 凭祥市| 灯塔市| 德昌县| 星子县| 玉山县| 呼图壁县| 淅川县| 临夏市| 北宁市| 中西区| 南岸区| 嘉禾县| 本溪市| 汪清县| 怀集县| 六枝特区| 桐庐县|