首页 > 代码库 > express cookie-session解惑

express cookie-session解惑

express的中间件基于connect模块而来,所以相关文档可以直接参考
http://www.senchalabs.org/connect/

使用cookie-session中间件过程中,比较困惑,所以记录如下

     


1.session 原理:
          session是基于cookie的
          客户端每次对服务器端发送请求时,都将cookie值发送过去;
         服务器端可以通过http  require-response中附带的cookie来修改cookie值;
         cookie中与session相关的数据是通过session_id;
        服务器端根据客户端传过来的session_id获取session信息;
        服务器端为每个session_id的session设置了过期时间;


2.session的存储方式:

            数据库存储、文件存储、内存存储(在php中每个文件就是一个请求;但是在这里当http server开启时,文件就一直在执行;因此可以通过object方式去存储)
    注释:
         内存存储方式  var session = { session_id: { /* data */ } };

 

 3. cookieSession之前需要使用cookieParser中间件

  1. 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 : 是否信任反向代理,默认false

    大概使用就是这样,这种是使用cookie来保存session值,NODEjs的内存保存session