Mòdul comunitari fantàstic

sessió de fib

Programari intermedi de sessió per a fibjs

Instal·lar

1
npm install fib-session [--save]

Prova

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; }, ... } ]);

Creació d'un middleware de sessió 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 } ]);

Tant les opcions kv com les opcions de sessió es troben al mateix objecte.

opcions de kv-store

opcions per defecte objecte/Mapa LruCache LevelDB Redis MongoDB SQLite/MySQL
nom_taula "kvs" x x x
nom_clau "k" x x x x
nom_valor "v" x x x x
mida_clau 32 x x x x x
mida_valor 256 x x x x x
interval de neteja (ms) 60000 x x x x x
temps d'espera (ms) 0 x x
prefix ""
memòria cau fals
cache_size 65536
cache_timeout (ms) 60000

opcions de sessió

opcions per defecte
session_cache_size 65536 nombre màxim de sessions a la memòria cau
session_cache_timeout (ms) 900000 esborra objectes de sessió que no s'utilitzen durant un període de temps des de la memòria intermèdia, per defecte 15 minuts
session_cache_delay 100 retard de temps per a la sessió d'escriptura a l'emmagatzematge persistent
session_id_name "ID de sessió"
  • La memòria cau de sessió s'utilitza per mantenir la coherència de la sessió entre els requisits http.
  • el temps d'espera de la memòria cau de la sessió ha de ser més gran que el seu retard

  • El costat del client només té l'ID de sessió. La sessió s'opera al costat del servidor.

Mètodes

session.setup()

configurar la base de dades de fons.

v = session.cookie_filter

retorna un filtre de sessió basat en galetes.

session.api_filter

retorna un filtre de sessió basat en capçalera.

session.api_token

retorna un controlador d'API que obté un nou ID de sessió.

Fitxa web JSON (JWT)

opcions

opcions per defecte
session_jwt_algo nul vegeu jws.ALGORITMES a fib-jws
session_jwt_key nul clau de signe, vegeu a fib-jws
  • vegeu fib-jws https://github.com/fibjs/fib-jws
  • establiu session_jwt_algo i session_jwt_key per habilitar 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ètodes

    session.setTokenCookie

  • establiu el testimoni web JSON a la galeta
  • sign_key per a la signatura, pot ser diferent de session_jwt_key, depenent de l'algorisme.
  • segons l'especificació del testimoni web JSON, una sessió d'usuari només es pot anomenar setTokenCookie una vegada per establir la informació de la sessió d'usuari. La segona generarà una excepció: new Error('No es pot modificar el testimoni web JSON')
  • valor per defecte 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

  • obteniu el testimoni per al mode de filtre API, vegeu session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)