Impresionante módulo comunitario

sesión fib

Middleware de sesión para fibjs

Instalar

1
npm install fib-session [--save]

Proba

1
npm run ci
1 2 3 4 5 6 7 8 9 10 11 12 13
var Session = require('fib-session') var session = new Session(conn, opts); var srv = new http.Server(8000, [ session.cookie_filter, // use session ID via cookie { // routers '^/foo$': (r) => { var v = r.session.v; }, ... } ]);

Creando un middleware de sesión API

1 2 3 4 5 6 7 8 9 10 11 12 13
var Session = require('fib-session') var session = new Session(conn, opts); var srv = new http.Server(8000, [ session.api_filter, // use api session filter { // routers '^/foo$': (r) => { var v = r.session.v; }, '^/get-token$': session.api_token } ]);

Tanto as opcións kv como as opcións de sesión están no mesmo obxecto.

opcións de kv-store

opcións por defecto obxecto/Mapa LruCache NivelDB Redis MongoDB SQLite/MySQL
nome_táboa "kvs" x x x
nome_chave "k" x x x x
nome_valor "v" x x x x
tamaño_chave 32 x x x x x
valor_tamaño 256 x x x x x
intervalo_limpeza (ms) 60000 x x x x x
tempo de espera (ms) 0 x x
prefixo ""
caché falso
caché_tamaño 65536
caché_timeout (ms) 60000

opcións de sesión

opcións por defecto
tamaño_sesión_caché 65536 número máximo de sesións na caché
session_cache_timeout (ms) 900000 borrar obxectos de sesión que non se operan durante un período de tempo desde o búfer, por defecto 15 minutos
retardo_sesión_cache 100 atraso de tempo para a sesión de escritura no almacenamento persistente
nome_id_sesión "ID de sesión"
  • A caché da sesión úsase para manter a coherencia da sesión entre os requisitos de http.
  • o tempo de espera da caché da sesión debe ser maior que o seu atraso

  • O lado do cliente só ten o ID de sesión. A sesión úsase no lado do servidor.

Métodos

session.setup()

configurar a base de datos de fondo.

v = session.cookie_filter

devolve un filtro de sesión baseado en cookies.

session.api_filter

devolve un filtro de sesión baseado en cabeceiras.

session.api_token

devolve un controlador de API que obtén un novo ID de sesión.

Token web JSON (JWT)

opcións

opcións por defecto
session_jwt_algo nulo ver jws.ALGORITMOS en fib-jws
chave_jwt_sesión nulo chave de signo. ver en fib-jws
  • ver fib-jws https://github.com/fibjs/fib-jws
  • configure session_jwt_algo e session_jwt_key para activar JWT
    1 2 3
    // session_jwt_algo is encryption algorithms in fib-jws // session_jwt_key is to verify the signature. var session = new Session(conn, { session_jwt_algo: 'HS256', session_jwt_key: verify_key })

    Métodos

    session.setTokenCookie

  • configure o token web JSON na cookie
  • sign_key para a sinatura, pode ser diferente de session_jwt_key, dependendo do algoritmo.
  • segundo a especificación de JSON Web Token, unha sesión de usuario só se pode chamar setTokenCookie unha vez para establecer a información da sesión de usuario. A segunda xerará unha excepción: new Error('Non se pode modificar o JSON Web Token')
  • valor predeterminado r.session={}
    1 2 3
    // sign user info: { id: 12345, name: "Frank" }, and set the cookie // r is request session.setTokenCookie(r, { id: 12345, name: "Frank" }, sign_key)

    session.getToken

  • obter o token para o modo de filtro API, consulte session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)