express cookie-session

express的中間件基於connect模塊而來,因此相關文檔能夠直接參考
http://www.senchalabs.org/connect/redis

使用cookie-session中間件過程當中,比較困惑,因此記錄以下

  1. cookieSession以前須要使用cookieParser中間件express

    var express =require('express');
    var app = express();
    app.use(express.cookieParser('S3CRE7'));
    app.use(express.cookieSession());

    中間件傳遞參數以下:
    key : cookie鍵,感受相似於PHP的session_id;
    secret : 加密cookie值的字符串,與cookieParser中的secret功能徹底相同,若是cookieParser沒有傳入secret參數,此處必須傳入。我的角度爲了主觀上的感受,採用了兩個不一樣的值。
    cookie : 設置cookie的相關參數,即除KV對以外的expire/maxAge,httpOnly,path值
    proxy : 是否信任反向代理,默認falsecookie

  2. 解析以後經過req.session訪問值session

    req.session.name = 'jason'app

    res.send('')
    即設置了session的一個KV對,此處比較讓我困惑。鄙人一直認爲中間件執行是單向的,只負責向後面應用層解析掛載數據,而設置session則反之。經google查詢,緣由是connect中間件經過patch向http.ServerResponse添加了一個header event用於更新cookie:ui

    res.on('header', function(){
          res.setHeader('Set-Cookie', cookie.serialize(key, ''));
       }

    模擬一個登錄驗證google

    function loginCheck(req,res,next){
          if(req.session.name){
          next();
      }else{
          res.send({"info":"unlogin"})
      }
    }
  3. 大概使用就是這樣,這種是使用cookie來保存session值,NODEjs的內存保存sessionredis,memcache的使用方案稍後放出加密

相關文章
相關標籤/搜索