Módulo de comunidad impresionante

sesión de fib

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 el 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 de 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

  • configurar el JSON Web Token en la cookie
  • sign_key para la firma, puede ser diferente de session_jwt_key, dependiendo del algoritmo.
  • De acuerdo con la especificación JSON Web Token, 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

  • obtener token para el modo de filtro api, consulte session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)