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的使用方案稍后放出加密

相关文章
相关标签/搜索