Mòdul de comunitat impressionant

sessió de fib

Middleware de sessió per a fibjs

Instal·la

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_tabla "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
valor_mida 256 x x x x x
neteja_interval (ms) 60000 x x x x x
temps d'espera (ms) 0 x x
prefix ""
memòria cau fals
mida_caché 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) 900.000 esborra els objectes de sessió que no s'executen durant un període de temps des del buffer, per defecte 15 minuts
session_cache_delay 100 retard de 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 de http.
  • el temps d'espera de la memòria cau de sessió ha de ser superior al seu retard

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

Mètodes

session.setup()

configureu la base de dades del backend.

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 API que obté un nou ID de sessió.

Token web JSON (JWT)

opcions

opcions per defecte
session_jwt_algo nul vegeu jws.ALGORITMES a fib-jws
sessió_jwt_key nul clau de signe. veure a fib-jws
  • consulteu fib-jws https://github.com/fibjs/fib-jws
  • configureu session_jwt_algo i session_jwt_key per 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ètodes

    session.setTokenCookie

  • configureu el testimoni web JSON a la galeta
  • sign_key per a la signatura, pot ser diferent de session_jwt_key, segons l'algorisme.
  • Segons l'especificació de JSON Web Token, una sessió d'usuari només es pot anomenar setTokenCookie una vegada per obtenir informació de sessió de l'usuari. La segona generarà una excepció: Error nou ("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

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