Impresionante módulo de comunidad

sesión de fib

Middleware de sesión para fibjs

Instalar

1
npm install fib-session [--save]

Prueba

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

Crear un middleware de sesión de 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 las opciones kv como las opciones de sesion están en el mismo objeto.

Opciones de kv-store

opciones por defecto objeto / Mapa LruCache LevelDB Redis MongoDB SQLite / MySQL
nombre_tabla "kvs" x x x
nombre_clave "k" x x x x
nombre_valor "v" x x x x
tamaño_clave 32 x x x x x
valor_tamaño 256 x x x x x
limpieza_intervalo (ms) 60000 x x x x x
tiempo de espera (ms) 0 0 x x
prefijo ""
caché falso
tamaño_caché 65536
cache_timeout (ms) 60000

opciones de sesión

opciones por defecto
session_cache_size 65536 número máximo de sesiones en caché
session_cache_timeout (ms) 900000 borrar objetos de sesión que no se utilizan durante un período de tiempo desde el búfer, por defecto 15 minutos
session_cache_delay 100 retraso de tiempo para la sesión de escritura en el almacenamiento persistente
session_id_name "sessionID"
  • la caché de sesión se utiliza para mantener la coherencia de sesión entre los requisitos http
  • el tiempo de espera de la caché de la sesión debe ser mayor que su retraso

  • El lado del cliente solo tiene el ID de sesión, la sesión se opera en el lado del servidor.

Métodos

session.setup()

configurar la base de datos del backend.

v = session.cookie_filter

devuelve un filtro de sesión basado en cookies.

session.api_filter

devuelve un filtro de sesión basado en encabezado.

session.api_token

devuelve un controlador de API que obtiene una nueva ID de sesión.

Token web JSON (JWT)

opciones

opciones por defecto
session_jwt_algo nulo ver jws. ALGORITMS en fib-jws
session_jwt_key nulo clave de signo. ver en fib-jws
  • ver fib-jws https://github.com/fibjs/fib-jws
  • establezca session_jwt_algo y session_jwt_key para 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étodos

    session.setTokenCookie

  • establecer el token web JSON en cookie
  • sign_key for signature , puede ser diferente de session_jwt_key, dependiendo del algoritmo.
  • according to JSON Web Token specification , una sesión de usuario solo se puede llamar setTokenCookie una vez para configurar la información de sesión del usuario. La segunda generará una excepción: nuevo error ('No se puede modificar el 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

  • get token for api filter mode , ver session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)