Перейти к содержанию

Class: AuthorizationSession

Клиентский refresh-token авторизации

После установления, сессия авторизации метод (establish) продолжает обновлять доступ и refresh token-ы по требованию. В случае истечения срока действия токена, генерируется исключение и метод останавливается пока не создастся новая сессия.

Для нескольких параллельных сессий нужно предоставить точный и стабильный для каждой сессии tokenId (например ID устройства)

Заметьте

Периодического обновления не происходит в режиме ожидания, поэтому срок действия сессии неминуемо истечет. Однако, можно периодически вызывать метод refresh

Конструкторы

constructor

new AuthorizationSession(url, tokenId, permissions)

Пример

const auth = new AuthorizationSession('https://cloud.spatium.net/authorization/v1', uuid(randomBytes), ['read', 'secret']);

const { data: { securityToken } } = await axios.post('https://cloud.spatium.net/authorization/v1/api/security-factor/credentials', {
  username: 'username', password: 'password',
}, {
  headers: {
    'request-id': uuid(randomBytes),
  },
}).then(({ data }) => data);

await auth.establish([securityToken]);

Параметры

Имя Тип Описание
url string authorization service эндпоинт (HTTP(S))
tokenId string ID сессии авторизации, контролирует несколько параллельных сессий
permissions string[] список необходимых разрешений для этой сессии

Методы

establish

establish(securityTokens): Promise<void>

Устанавливает новую сессию авторизации, заменяет предыдущую если она была.

Этот метод производит получение первоначального токена, и может быть вызван снова (с валидным токеном) чтобы аннулировать предыдущий refresh token. Перед установкой сессии не должно быть произведено никаких операций с токеном.

Параметры

Имя Тип Описание
securityTokens string[] список собранных токенов безопасности, достаточных для получения разрешений

Возвращает

Promise<void>


getPermissionToken

getPermissionToken(): Promise<string>

Получение текущего permission (access) токена

Пока действие refresh токена не истекло, этот метод всегда будет возвращать валидный токен доступа и обновляет его при необходимости

Возвращает

Promise<string>

permission токен по параметрам конструктора


refresh

refresh(): Promise<void>

Обновление сессии вручную

Этот метод вызывается внутренне, выдает ошибку если действие refresh токена уже истекло.

Возвращает

Promise<void>