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
>