SESSION

ВСТУП

Модуль n2o_session надає механізм сесій — змінні сесій, захищені токеном авторизації.

> ets:tab2list(cookies). [{{<<"05dcf467c79071008bc4">>,user},{63710034516,"maxim"}}, {{<<"05dcf467c79071008bc4">>,room},{63710034516,"n2o"}}, {{<<"05dcf467c79071008bc4">>,auth},{63710033891,[]}}]

ТИПИ

Токен сесії представляє собою кортеж, кешований в ETS. Він складається з ідентифікатора сесії, терміну придатності, ключа та значення. Токен сесії використовується як для змінних авторизації, так і для змінних сесії.

-type expires() :: integer(). -type session_sid() :: binary(). -type session_key() :: { session_sid() , term() }. -type session_val() :: { expires() , term() }. -type session() :: { session_key() , session_val() }.

Токен сесії виглядає як значення, зашифроване pickler, в кортежі з ключем 'Token'.

-type token() :: { 'Token', binary() }.

API

authenticate([],binary()) -> token().

Протокол виглядає наступним чином. Якщо термін придатності сесії закінчився, або токен сесії недійсний — створюється новий токен сесії. У випадку, коли термін придатності ще не закінчився, і токен сесії є валідним, можливі два варіанти: 1) якщо параметр n2o nitro_prolongate дорівнює true, то оновлюється значення терміну придатності для поточної сесії (поки sid сесії залишається незмінним); 2) якщо nitro_prolongate дорівнює false — токен сесії повністю залишається незмінним.

get_value(binary(),term(),term()) -> term().

Повертає значення змінної сесії зі storage сесій.

set_value(binary(),term(),term()) -> term().

Зберігає значення змінної сесії в storage сесій.

storage() -> atom().

Повертає поточний бекенд сесій. По замовчуванню n2o_session.

prolongate() -> boolean().

Повертає n2o параметр nitro_prolongate. По замовчуванню false.

BACKEND

clear(binary()) -> ok.

Очищає всі змінні сесії по sid.

update(session()) -> ok.

Оновлює сесію.

delete(session_key()) -> ok.

Видаляє сесію по ключу.

lookup(session_key()) -> ok.

Пошук сесії по ключу.

invalidate_sessions() -> ok.

Видаляє всі змінні, для яких закінчився термін придатності, для всіх сесій.

Можливо, Ви також бажаєте почитати про: n2o_nitro, n2o.