itd-api / AuthResource
Interface: AuthResource
Defined in: resources/auth.ts:67
Авторизация, сессии и пароли.
Доступна как itd.auth.
Extends
BaseResource
Methods
changePassword()
changePassword(input, options?): Promise<void>;Defined in: resources/auth.ts:380
Меняет пароль. Требует действующей сессии.
При неверном текущем пароле сервер отвечает ACCOUNT_CURRENT_PASSWORD_INCORRECT.
Parameters
input
currentPassword
string
newPassword
string
options?
RequestOptions = {}
Returns
Promise<void>
Example
await itd.auth.changePassword({ currentPassword, newPassword });check()
check(options?): Promise<AuthState>;Defined in: resources/auth.ts:80
Проверяет состояние авторизации и возвращает текущего пользователя.
Без авторизации возвращает authenticated: false и user: null.
Parameters
options?
RequestOptions = {}
Returns
Promise<AuthState>
forgotPassword()
forgotPassword(input, options?): Promise<string>;Defined in: resources/auth.ts:299
Запрашивает письмо с кодом для сброса пароля.
Parameters
input
options?
RequestOptions = {}
Returns
Promise<string>
flowToken, который нужно передать в resetPassword
hasRefreshSession()
hasRefreshSession(): Promise<boolean>;Defined in: resources/auth.ts:260
Есть ли признак живой сессии обновления.
Проверяет cookie is_auth, которую сервер ставит рядом с refresh-токеном, а также refresh-токен, переданный строкой. Позволяет не дёргать API у неавторизованного пользователя. В браузере всегда true: cookie ведёт сама среда, и прочитать её из JS нельзя.
Читает TokenStorage, поэтому результат верен и до первого запроса.
Returns
Promise<boolean>
Example
if (await itd.auth.hasRefreshSession()) await itd.auth.refresh();
else redirectToLogin();logout()
logout(options?): Promise<void>;Defined in: resources/auth.ts:265
Завершает текущую сессию на сервере и очищает локальную.
Parameters
options?
RequestOptions = {}
Returns
Promise<void>
logoutAll()
logoutAll(options?): Promise<void>;Defined in: resources/auth.ts:284
Завершает все сессии пользователя и очищает локальную.
Собран из двух запросов, потому что единого эндпоинта на сервере нет: POST /api/v1/auth/logout-all отвечает 404. Сначала отзываются все прочие сессии (DELETE /api/v1/auth/sessions), затем завершается текущая — в обратном порядке отзывать было бы уже нечем.
Parameters
options?
RequestOptions = {}
Returns
Promise<void>
refresh()
refresh(): Promise<string>;Defined in: resources/auth.ts:240
Обновляет токен доступа.
Параллельные вызовы объединяются в один сетевой запрос. При включённом autoRefresh вызывать вручную обычно не нужно.
Returns
Promise<string>
resendOtp()
resendOtp(input, options?): Promise<void>;Defined in: resources/auth.ts:172
Отправляет код подтверждения повторно.
Parameters
input
email
string
flowToken
string
options?
RequestOptions = {}
Returns
Promise<void>
resetPassword()
resetPassword(input, options?): Promise<void>;Defined in: resources/auth.ts:323
Устанавливает новый пароль по коду из письма.
Сервер ждёт все четыре поля сразу — email, otp, flowToken и newPassword; при нехватке любого отвечает 422.
Parameters
input
options?
RequestOptions = {}
Returns
Promise<void>
resetPasswordWithOtp()
resetPasswordWithOtp(input, options?): Promise<void>;Defined in: resources/auth.ts:350
Полный сброс пароля с кодом из письма.
Тот же приём, что и signInWithOtp: код запрашивается функцией getOtp, остальное библиотека делает сама.
Parameters
input
ForgotPasswordInput & object
options?
RequestOptions = {}
Returns
Promise<void>
Example
await itd.auth.resetPasswordWithOtp({
email,
turnstileToken,
newPassword,
getOtp: () => rl.question('Код из письма: '),
});revokeOtherSessions()
revokeOtherSessions(options?): Promise<void>;Defined in: resources/auth.ts:413
Завершает все сессии, кроме текущей.
Parameters
options?
RequestOptions = {}
Returns
Promise<void>
revokeSession()
revokeSession(sessionId, options?): Promise<void>;Defined in: resources/auth.ts:404
Завершает указанную сессию.
Parameters
sessionId
string
options?
RequestOptions = {}
Returns
Promise<void>
sessions()
sessions(options?): Promise<Session[]>;Defined in: resources/auth.ts:393
Загружает список активных сессий. У текущей поле isCurrent равно true.
Parameters
options?
RequestOptions = {}
Returns
Promise<Session[]>
signIn()
signIn(credentials, options?): Promise<SignInResult>;Defined in: resources/auth.ts:121
Выполняет вход.
Если сервер потребовал код подтверждения, вернётся status: 'otp_required' — тогда продолжайте через verifyOtp либо воспользуйтесь signInWithOtp.
При успешном входе токен сохраняется в клиенте автоматически.
Parameters
credentials
email, пароль и обязательный токен капчи — см. CaptchaCredentials
options?
RequestOptions = {}
Returns
Promise<SignInResult>
signInWithOtp()
signInWithOtp(input, options?): Promise<string>;Defined in: resources/auth.ts:204
Полный вход с подтверждением по коду.
Удобно для скриптов и ботов: код запрашивается функцией getOtp, а всё остальное библиотека делает сама.
Parameters
input
CaptchaCredentials & object
options?
RequestOptions = {}
Returns
Promise<string>
Example
import { createInterface } from 'node:readline/promises';
const rl = createInterface({ input: process.stdin, output: process.stdout });
const token = await itd.auth.signInWithOtp({
email, password,
getOtp: () => rl.question('Код из письма: '),
});signOut()
signOut(): Promise<void>;Defined in: resources/auth.ts:290
Забывает сессию локально, не обращаясь к серверу.
Returns
Promise<void>
signUp()
signUp(credentials, options?): Promise<string>;Defined in: resources/auth.ts:93
Регистрирует аккаунт и запускает подтверждение по коду.
Parameters
credentials
options?
RequestOptions = {}
Returns
Promise<string>
flowToken, который нужно передать в verifyOtp
verifyOtp()
verifyOtp(input, options?): Promise<string>;Defined in: resources/auth.ts:149
Подтверждает вход кодом из письма.
Полученный токен сохраняется в клиенте автоматически.
Parameters
input
Credentials & object
options?
RequestOptions = {}
Returns
Promise<string>