Módulo de comunidad impresionante

fib-sesión

Middleware de sesión para fibjs

Instalar en pc

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

Creación de 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 sesión están en el mismo objeto.

opciones de kv-store

opciones defecto objeto / Mapa LruCache LevelDB Redis MongoDB SQLite / MySQL
nombre de la tabla "kvs" X X X
Nombre clave "k" X X X X
value_name "v" X X X X
tamaño_clave 32 X X X X X
tamaño del valor 256 X X X X X
cleanup_interval (ms) 60000 X X X X X
tiempo de espera (ms) 0 X X
prefijo ""
cache falso
tamaño del caché 65536
cache_timeout (ms) 60000

opciones de sesión

opciones defecto
session_cache_size 65536 número máximo de sesiones en caché
session_cache_timeout (ms) 900000 borrar los objetos de sesión que no se operan durante un período de tiempo del búfer, por defecto 15 minutos
session_cache_delay 100 Retraso de tiempo para la sesión de escritura en almacenamiento persistente
session_id_name "ID de sesión"
  • la caché de sesión se utiliza para mantener la coherencia de la sesión entre los requisitos http.
  • el tiempo de espera de la caché de 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 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 encabezados.

session.api_token

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

Token web JSON (JWT)

opciones

opciones defecto
session_jwt_algo nulo ver ALGORITMOS de jws en fib-jws
session_jwt_key nulo clave de signo. ver en fib-jws
  • ver fib-jws https://github.com/fibjs/fib-jws
  • configure 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 JSON Web Token en la 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 la 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 , consulte session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)