OAuth2
OAuth2 — класс для управления OAuth2 токенами авторизации. Singleton экземпляр доступен через свойство rest.oauth2 после инициализации Frame.
Автоматически добавляет заголовок Authorization к каждому запросу и обновляет токены при получении ошибки авторизации (HTTP 401).
import { OAuth2 } from '@aspro-cloud/miniapp-jssdk'Свойства
accessToken
Текущий OAuth2 access токен
get accessToken(): stringevents
Объект типа EventCallbacks<OAuth2EventName> с обработчиками событий
get events(): EventCallbacks
set events(value: EventCallbacks)expiresAt
Дата и время истечения access токена
get expiresAt(): Date | nullrefreshToken
Текущий OAuth2 refresh токен
get refreshToken(): stringМетоды
initialize
Инициализирует singleton экземпляр OAuth2. Если экземпляр уже создан — обновляет обработчики событий из переданных параметров
static initialize(params?: OAuth2Params): OAuth2| Параметр | Тип | Описание |
|---|---|---|
params | OAuth2Params | Параметры инициализации |
getInstance
Возвращает текущий singleton экземпляр OAuth2. Вызывать только после initialize()
static getInstance(): OAuth2Ошибки
Метод выбросит ошибку если OAuth2 ещё не инициализирован.
destroy
Удаляет подписки и освобождает ресурсы
destroy(): voidrefresh
Принудительно обновляет OAuth2 токены через платформу и возвращает OAuth2RefreshResult с новыми значениями токенов
async refresh(): Promise<OAuth2RefreshResult>События метода refresh():
| Событие | Параметр | Тип | Описание |
|---|---|---|---|
'onRefresh' | Токены успешно обновлены | ||
data | OAuth2RefreshResult | Объект с обновленными токенами |
Пример
import { App, OAuth2 } from '@aspro-cloud/miniapp-jssdk'
await App.initializeFrame()
const oauth2 = OAuth2.getInstance()
// Подписка на событие обновления токенов
oauth2.events = {
onRefresh: (data) => {
console.log('Токены обновлены:', data)
}
}
// Принудительное обновление токенов
const result = await oauth2.refresh()const App = window.ACloudMiniApp
const frame = await App.initializeFrame()
// Подписка на событие обновления токенов
frame.rest.oauth2.events = {
onRefresh: (data) => {
console.log('Токены обновлены:', data);
}
};
// Принудительное обновление токенов
const result = await frame.rest.oauth2.refresh();