Fantastico modulo comunitario

sessione di fib

Middleware di sessione per fibj

Installare

1
npm install fib-session [--save]

Test

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

Creazione di un middleware di sessione 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 } ]);

Sia le opzioni kv che le opzioni di sessione si trovano nello stesso oggetto.

opzioni kv-store

opzioni predefinito oggetto/mappa LruCache LivelloDB Redis MongoDB SQLite/MySQL
nome_tabella "kvs" X X X
nome_chiave "K" X X X X
nome_valore "v" X X X X
dimensione_chiave 32 X X X X X
valore_dimensione 256 X X X X X
intervallo_pulizia(ms) 60000 X X X X X
timeout (ms) 0 X X
prefisso ""
cache falso
dimensione della cache 65536
cache_timeout(ms) 60000

opzioni della sessione

opzioni predefinito
session_cache_size 65536 numero massimo di sessioni nella cache
session_cache_timeout(ms) 900000 cancella gli oggetti della sessione che non vengono utilizzati per un periodo di tempo dal buffer, valore predefinito 15 minuti
session_cache_delay 100 ritardo temporale per la sessione di scrittura nell'archivio persistente
nome_id_sessione "IDsessione"
  • la cache di sessione viene utilizzata per mantenere la coerenza della sessione tra i requisiti http.
  • il timeout della cache della sessione deve essere maggiore del relativo ritardo

  • Sul lato client è presente solo l'ID di sessione, la sessione viene gestita sul lato server.

Metodi

session.setup()

impostare il database di back-end.

v = session.cookie_filter

restituisce un filtro di sessione basato su cookie.

session.api_filter

restituisce un filtro di sessione basato sull'intestazione.

session.api_token

restituisce un gestore API che ottiene un nuovo ID di sessione.

Token Web JSON (JWT)

opzioni

opzioni predefinito
session_jwt_algo nullo vedere jws.ALGORITMI in fib-jws
session_jwt_key nullo chiave del segno vedi in fib-jws
  • vedere fib-jws https://github.com/fibjs/fib-jws
  • imposta session_jwt_algo e session_jwt_key per abilitare 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 })

    Metodi

    session.setTokenCookie

  • impostare il token Web JSON nel cookie
  • sign_key per la firma, potrebbe essere diverso da session_jwt_key, a seconda dell'algoritmo.
  • in base alle specifiche JSON Web Token, una sessione utente può essere chiamata setTokenCookie solo una volta per impostare le informazioni sulla sessione utente. La seconda genererà un'eccezione: new Error('Can't modification the JSON Web Token')
  • valore predefinito 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

  • ottenere il token per la modalità filtro API, vedere session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)