itd-api / AuthProvider
Interface: AuthProvider
Defined in: core/auth-provider.ts:25
Что конвейер запросов спрашивает у авторизации.
Узкий контракт вместо полноценного менеджера сессии: pipeline не должен знать ни про refresh-токены, ни про хранилище, ни про вход по паролю. Благодаря этому клиент с готовым токеном не тянет за собой сессионную машинерию — она подставляется вызывающим кодом.
Каждый метод соответствует ровно одной стадии конвейера. Готовые реализации — bearerToken(), tokenProvider() и anonymousAuth().
Methods
currentHeaders()
currentHeaders(): Record<string, string>;Defined in: core/auth-provider.ts:48
Заголовки уже подготовленной авторизации.
Синхронность существенна: слой стоит внутри очереди, непосредственно перед транспортом, и не должен запускать I/O. Зато запрос, отстоявший в очереди, получает самый свежий токен.
Returns
Record<string, string>
deviceId()
deviceId(): Promise<string>;Defined in: core/auth-provider.ts:56
Значение заголовка X-Device-Id. Отправляется и с анонимными запросами.
Returns
Promise<string>
dispose()
dispose(): void;Defined in: core/auth-provider.ts:58
Снимает подписки при терминальном освобождении владельца.
Returns
void
preflight()?
optional preflight(allowRefresh): Promise<void>;Defined in: core/auth-provider.ts:39
Один раз готовит авторизацию до retry исходного запроса. Вложенные auth-операции используют собственную retry-политику.
Parameters
allowRefresh
boolean
можно ли заранее обновить токен
Returns
Promise<void>
prepare()?
optional prepare(): Promise<void>;Defined in: core/auth-provider.ts:41
Перед каждой попыткой читает внешний источник токена до захвата слота очереди.
Returns
Promise<void>
recover()
recover(): Promise<boolean>;Defined in: core/auth-provider.ts:54
Реакция на ответ 401.
Returns
Promise<boolean>
true, если токен обновлён и повторять попытку имеет смысл
token()
token(): Promise<string | null>;Defined in: core/auth-provider.ts:32
Текущий токен доступа.
Нужен там, где заголовок не поставить: SSE в браузере и WebSocket передают токен параметром адреса. Конвейеру запросов достаточно currentHeaders.
Returns
Promise<string | null>