1.0.8 • Published 8 years ago

shuyar-rest-session v1.0.8

Weekly downloads
3
License
ISC
Repository
github
Last release
8 years ago

#shuyar-rest-session

此中间件主要针对使用restify的API server的session管理。
API server主要是对外提供接口,客户端可能是web,H5, 也可能是mobile。由于mobile的app不支持
cookie,无法使用cookie来进行session的交互,所以此中间件仅使用header来进行session的管理。

web客户端,可以在web server层使用cookie来进行session的管理,与后台API交互的时候仍然使用header。

任意API的请求都会产生一个sid, 并在header里返回。

此中间件使用redis进行session的存储


在req中添加了方法:

  • req.saveSession 用来保存session数据到redis,比如用户登录后需要把相关信息存储到session里面。
  • req.destorySession 用来删除当前session数据,比如用户注销要删除session。
  • req.regenerateSession 删除旧session并生成新的session。比如用户登录的时候需要重新生成session。

安装

npm install shuyar-rest-session

使用

var session = require('shuyar-rest-session');

var session = session.config({
    redis: {
        host: '127.0.0.1', // 默认值127.0.0.1
        port: 6379, // 默认值6379
        db: 3 // 默认值undefined
        user: 'username' // 默认值undefined
        pass: 'password' // 默认值undefined
    },
    session: {
        ttl: 60 * 10, // 默认值30分钟
        header: 'SESSIONID' // 默认header为SESSION-ID
    },
    logger: logger // 默认值console
});

server.use(session);

程序会对每一个请求检查是否有sid,如果没有则生成一个新的sid,同时保存到redis并赋值给req.session:

req.session = {
    sid: 'sid'
}

对已有sid的请求,会在收到请求的时候进行session刷新

  • req.saveSession(sid, sessionData, callback)
callback(err, {succcess: true, status: 1});
  • req.destorySession(sid, callback)
callback(err, {succcess: true, status: 1});
  • req.regenerateSession(sid, callback)
callback(err, {succcess: true, sid: sid});

version 1.0.4 修复一些bugs

version 1.0.6 如果返回的是json对象,则增加sessionId

1.0.8

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago