1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fibjs-fib-session

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
Readme.md

Сессия-промежуточное ПО для fibjs

Установка

npm install fib-session [--save]

Тестирование

npm run ci

Создание промежуточного ПО на основе файлов cookie

var Session = require('fib-session')
var session = new Session(conn, opts);

var srv = new http.Server(8000, [
    session.cookie_filter, // использовать идентификатор сессии через файл cookie
    {
        // маршрутизаторы
        '^/foo$': (r) => {
            var v = r.session.v;
        },
        ...
    }
]);

Создание API-промежуточного ПО

var Session = require('fib-session')
var session = new Session(conn, opts);

var srv = new http.Server(8000, [
    session.api_filter, // использовать API-фильтр сессии
    {
        // маршрутизаторы
        '^/foo$': (r) => {
            var v = r.session.v;
        },
        '^/get-token$': session.api_token
    }
]);

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

Параметры хранилища kv

Параметры По умолчанию Объект/Map LruCache LevelDB Redis MongoDB SQLite/MySQL
table_name «kvs» x x x
key_name «k» x x x x
value_name «v» x x x x
key_size 32 x x x x x
value_size 256 x x x x x
cleanup_interval (мс) 60000 x x x x x
timeout (мс) 0 x x
prefix
cache false
cache_size 65536
cache_timeout (мс) 60000

Параметры сессии

Параметры По умолчанию
session_cache_size 65536
session_cache_timeout (мс) 900000
session_cache_delay 100
session_id_name sessionID
  • Сессия-кэш используется для поддержания согласованности сессий среди HTTP-запросов.

  • Тайм-аут кэш-памяти сессии должен быть больше, чем его задержка.

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

Методы

session.setup()

настройка бэкенд-базы данных.

v = session.cookie_filter

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

session.api_filter

возвращает API-фильтр сеанса.

session.api_token

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

JSON Web Token (JWT)

Параметры | Параметры | По умолчанию | | | | | | --- | --- | --- | | session_jwt_algo | null | see jws.ALGORITHMS in fib-jws | | session_jwt_key | null | sign key. see in fib-jws |

— see fib-jws https://github.com/fibjs/fib-jws

— set session_jwt_algo и session_jwt_key для включения JWT:

// session_jwt_algo — это алгоритмы шифрования в fib-jws.
// session_jwt_key используется для проверки подписи.
var session = new Session(conn, { session_jwt_algo: 'HS256', session_jwt_key: verify_key })

Methods

session.setTokenCookie

— устанавливает JSON Web Token в cookie. — sign_key для подписи может отличаться от session_jwt_key в зависимости от алгоритма. — согласно спецификации JSON Web Token, один пользовательский сеанс может вызвать setTokenCookie только один раз для установки информации о пользовательском сеансе. Второй вызов вызовет исключение: new Error('Can't modify the JSON Web Token'). — значение по умолчанию r.session={}.

// подписывает информацию о пользователе: { id: 12345, name: "Frank" } и устанавливает cookie.
// r — запрос.
session.setTokenCookie(r, { id: 12345, name: "Frank" }, sign_key)

session.getToken

— получает токен для режима фильтрации API, см. session.api_filter.

session.getToken ({ id: 12345, name: "Frank" }, sign_key)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Сессионное промежуточное ПО для fibjs. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/fibjs-fib-session.git
git@api.gitlife.ru:oschina-mirror/fibjs-fib-session.git
oschina-mirror
fibjs-fib-session
fibjs-fib-session
master