Skip to content

OAuth2

OAuth2 — класс для управления OAuth2 токенами авторизации. Singleton экземпляр доступен через свойство rest.oauth2 после инициализации Frame.

Автоматически добавляет заголовок Authorization к каждому запросу и обновляет токены при получении ошибки авторизации (HTTP 401).

ts
import { OAuth2 } from '@aspro-cloud/miniapp-jssdk'

Свойства

accessToken

Текущий OAuth2 access токен

ts
get accessToken(): string

events

Объект типа EventCallbacks<OAuth2EventName> с обработчиками событий

ts
get events(): EventCallbacks
set events(value: EventCallbacks)

expiresAt

Дата и время истечения access токена

ts
get expiresAt(): Date | null

refreshToken

Текущий OAuth2 refresh токен

ts
get refreshToken(): string

Методы

initialize

Инициализирует singleton экземпляр OAuth2. Если экземпляр уже создан — обновляет обработчики событий из переданных параметров

ts
static initialize(params?: OAuth2Params): OAuth2
ПараметрТипОписание
paramsOAuth2ParamsПараметры инициализации

getInstance

Возвращает текущий singleton экземпляр OAuth2. Вызывать только после initialize()

ts
static getInstance(): OAuth2

Ошибки

Метод выбросит ошибку если OAuth2 ещё не инициализирован.

destroy

Удаляет подписки и освобождает ресурсы

ts
destroy(): void

refresh

Принудительно обновляет OAuth2 токены через платформу и возвращает OAuth2RefreshResult с новыми значениями токенов

ts
async refresh(): Promise<OAuth2RefreshResult>

События метода refresh():

СобытиеПараметрТипОписание
'onRefresh'Токены успешно обновлены
dataOAuth2RefreshResultОбъект с обновленными токенами

Пример

ts
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()
js
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();

Опубликовано под лицензией MIT.