Impresionante módulo comunitario

sesión de mentira

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

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

opciones de tienda kv

opciones por defecto objeto/Mapa LruCache NivelDB Redis MongoDB SQLite/MySQL
nombre de la 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
tamaño del valor 256 X X X X X
intervalo_limpieza(ms) 60000 X X X X X
tiempo de espera (ms) 0 X X
prefijo ""
cache FALSO
tamaño del caché 65536
tiempo de espera de caché (ms) 60000

opciones de sesión

opciones por defecto
tamaño_caché_sesión 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 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
nombre_id_sesión "ID de sesión"
  • El caché de sesión se utiliza para mantener la coherencia de la sesión entre los requisitos de http.
  • el tiempo de espera del caché de la sesión debe ser mayor que su retraso

  • El lado del cliente sólo tiene el ID de la 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 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
sesión_jwt_algo nulo ver jws.ALGORITMOS en fib-jws
sesión_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 token web JSON en la cookie
  • sign_key para firma, puede ser diferente de session_jwt_key, según el algoritmo.
  • De acuerdo con la especificación del token web JSON, una sesión de usuario solo puede llamarse 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 token web JSON').
  • 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

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