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:46
Заголовки уже подготовленной авторизации.
Синхронность существенна: слой стоит внутри очереди, непосредственно перед транспортом, и не должен запускать I/O. Зато запрос, отстоявший в очереди, получает самый свежий токен.
Returns
Record<string, string>
deviceId()
deviceId(): Promise<string>;Defined in: core/auth-provider.ts:54
Значение заголовка X-Device-Id. Отправляется и с анонимными запросами.
Returns
Promise<string>
dispose()
dispose(): void;Defined in: core/auth-provider.ts:56
Снимает подписки при терминальном освобождении владельца.
Returns
void
prepare()
prepare(): Promise<void>;Defined in: core/auth-provider.ts:39
Готовит состояние авторизации до входа транспортной попытки в очередь.
Чтение хранилища, обращение к внешнему источнику токена и отложенный вход асинхронны, поэтому обязаны завершиться до захвата слота очереди.
Returns
Promise<void>
recover()
recover(): Promise<boolean>;Defined in: core/auth-provider.ts:52
Реакция на ответ 401.
Returns
Promise<boolean>
true, если токен обновлён и повторять попытку имеет смысл
token()
token(): Promise<string | null>;Defined in: core/auth-provider.ts:32
Текущий токен доступа.
Нужен там, где заголовок не поставить: SSE в браузере и WebSocket передают токен параметром адреса. Конвейеру запросов достаточно currentHeaders.
Returns
Promise<string | null>