sessió de fib
Programari intermedi de sessió per a fibjs
Instal·lar
1npm install fib-session [--save]
Prova
1npm run ci
Creació d'un middleware de sessió basat en galetes
1
2
3
4
5
6
7
8
9
10
11
12
13var 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
13var 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_taula | "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 | √ |
mida_valor | 256 | x | x | x | x | x | √ |
interval de neteja (ms) | 60000 | x | x | x | x | x | √ |
temps d'espera (ms) | 0 | x | √ | x | √ | √ | √ |
prefix | "" | √ | √ | √ | √ | √ | √ |
memòria cau | fals | √ | √ | √ | √ | √ | √ |
cache_size | 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) | 900000 | esborra objectes de sessió que no s'utilitzen durant un període de temps des de la memòria intermèdia, per defecte 15 minuts |
session_cache_delay | 100 | retard de temps per a 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 http.
el temps d'espera de la memòria cau de la sessió ha de ser més gran que el seu retard
El costat del client només té l'ID de sessió. La sessió s'opera al costat del servidor.
Mètodes
session.setup()
configurar la base de dades de fons.
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 d'API que obté un nou ID de sessió.
Fitxa web JSON (JWT)
opcions
opcions | per defecte | |
---|---|---|
session_jwt_algo | nul | vegeu jws.ALGORITMES a fib-jws |
session_jwt_key | nul | clau de signe, vegeu a fib-jws |
- vegeu fib-jws https://github.com/fibjs/fib-jws
- establiu session_jwt_algo i session_jwt_key per habilitar JWT1 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
- establiu el testimoni web JSON a la galeta
- sign_key per a la signatura, pot ser diferent de session_jwt_key, depenent de l'algorisme.
- segons l'especificació del testimoni web JSON, una sessió d'usuari només es pot anomenar setTokenCookie una vegada per establir la informació de la sessió d'usuari. La segona generarà una excepció: new Error('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
- obteniu el testimoni per al mode de filtre API, vegeu session.api_filter1session.getToken ({ id: 12345, name: "Frank" }, sign_key)