Потрясающий модуль сообщества

фибо-сессия

Промежуточное ПО сеанса для fibjs

Установить

1
npm install fib-session [--save]

Тест

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

Создание промежуточного программного обеспечения сеанса 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 } ]);

И параметры kv, и параметры сеанса находятся в одном и том же объекте.

варианты кв-магазина

параметры по умолчанию объект/Карта ЛруКэш УровеньБД Редис МонгоБД SQLite/MySQL
имя_таблицы "квс" Икс Икс Икс
имя_ключа "к" Икс Икс Икс Икс
имя_значения "в" Икс Икс Икс Икс
key_size 32 Икс Икс Икс Икс Икс
значение_размера 256 Икс Икс Икс Икс Икс
Cleanup_interval (мс) 60000 Икс Икс Икс Икс Икс
тайм-аут (мс) 0 Икс Икс
префикс ""
кэш ЛОЖЬ
размер кэша 65536
кэш_таймаут (мс) 60000

параметры сеанса

параметры по умолчанию
session_cache_size 65536 максимальное количество сессий в кеше
session_cache_timeout (мс) 900000 очистить объекты сеанса, которые не используются в течение определенного периода времени, из буфера, по умолчанию 15 минут
session_cache_delay 100 задержка времени для сеанса записи в постоянное хранилище
session_id_name "идентификатор сессии"
  • Кэш сеанса используется для обеспечения согласованности сеансов среди требований HTTP.
  • таймаут кэша сеанса должен быть больше его задержки

  • На стороне клиента есть только идентификатор сеанса.Сеанс работает на стороне сервера.

Методы

session.setup()

настроить серверную базу данных.

v = session.cookie_filter

возвращает фильтр сеансов на основе файлов cookie.

session.api_filter

возвращает фильтр сеанса на основе заголовка.

session.api_token

возвращает обработчик API, который получает новый идентификатор сеанса.

Веб-токен JSON (JWT)

параметры

параметры по умолчанию
session_jwt_algo нулевой см. jws.АЛГОРИТМЫ в fib-jws
session_jwt_key нулевой ключ подписи. см. в fib-jws
  • см. fib-jws https://github.com/fibjs/fib-jws
  • установите session_jwt_algo и session_jwt_key, чтобы включить 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 })

    Методы

    session.setTokenCookie

  • установите веб-токен JSON в файл cookie
  • Sign_key для подписи может отличаться от session_jwt_key в зависимости от алгоритма.
  • согласно спецификации JSON Web Token, один пользовательский сеанс может быть вызван setTokenCookie только один раз для установки информации о пользовательском сеансе. Второй выдаст исключение: новая ошибка («Невозможно изменить JSON Web Token»)
  • значение по умолчанию 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

  • получить токен для режима фильтра API, см. session.api_filter
    1
    session.getToken ({ id: 12345, name: "Frank" }, sign_key)