Skip to content

API: Аутентификация

Документация API модуля аутентификации kodzero.auth.

Обзор

Модуль аутентификации доступен через свойство auth экземпляра Kodzero:

typescript
const kodzero = new Kodzero({ host, authCollection })
kodzero.auth // модуль аутентификации

Методы

login(credentials)

Авторизация пользователя по email и паролю.

Сигнатура

typescript
login(credentials: LoginCredentials): Promise<LoginResult>

Параметры

ПараметрТипОбязательныйОписание
credentials.emailstringEmail пользователя
credentials.passwordstringПароль пользователя

Возвращаемое значение

typescript
interface LoginResult {
  user: AuthUser
  tokens: Tokens
  session: number
}

Пример

typescript
const result = await kodzero.auth.login({
  email: 'user@example.com',
  password: 'secure_password'
})

console.log(result.user)    // данные пользователя
console.log(result.tokens)  // { access: '...', refresh: '...' }

register(userData)

Регистрация нового пользователя.

Сигнатура

typescript
register(userData: RegisterData): Promise<RegisterResult>

Параметры

ПараметрТипОбязательныйОписание
userData.emailstringEmail пользователя
userData.passwordstringПароль
userData.*anyДополнительные поля

Возвращаемое значение

typescript
interface RegisterResult {
  user: AuthUser
  tokens: Tokens
  session: number
}

Пример

typescript
const result = await kodzero.auth.register({
  email: 'new@example.com',
  password: 'secure_password',
  name: 'Иван Иванов'
})

verify()

Проверяет валидность текущего access-токена.

Сигнатура

typescript
verify(): Promise<boolean>

Возвращаемое значение

true если токен валиден, false в противном случае.

Пример

typescript
const isValid = await kodzero.auth.verify()

if (isValid) {
  console.log('Пользователь авторизован')
} else {
  console.log('Необходима повторная авторизация')
}

refresh()

Обновляет access-токен с помощью refresh-токена.

Сигнатура

typescript
refresh(): Promise<RefreshResult>

Возвращаемое значение

typescript
// При успехе
{ tokens: { access: string, refresh: string } }

// При ошибке
{ tokens: null }

Пример

typescript
const result = await kodzero.auth.refresh()

if (result.tokens) {
  console.log('Токен обновлён')
} else {
  console.log('Не удалось обновить токен')
}

logout()

Выход из системы. Очищает токены.

Сигнатура

typescript
logout(): Promise<boolean>

Возвращаемое значение

true при успешном выходе.

Пример

typescript
const success = await kodzero.auth.logout()

if (success) {
  // Перенаправить на страницу входа
}

setTokens(access, refresh?)

Устанавливает токены вручную. Полезно для восстановления сессии.

Сигнатура

typescript
setTokens(access: string, refresh?: string): void

Параметры

ПараметрТипОбязательныйОписание
accessstringAccess токен
refreshstringRefresh токен

Пример

typescript
// Восстановление из localStorage
const access = localStorage.getItem('access_token')
const refresh = localStorage.getItem('refresh_token')

if (access && refresh) {
  kodzero.auth.setTokens(access, refresh)
}

clearTokens()

Очищает все токены.

Сигнатура

typescript
clearTokens(): void

Пример

typescript
kodzero.auth.clearTokens()

TypeScript типы

LoginCredentials

typescript
interface LoginCredentials {
  email: string
  password: string
}

AuthUser

typescript
interface AuthUser {
  _id: string
  email: string
  name: string
  workspace: string
  createdAt: string
  updatedAt: string
  [key: string]: any  // дополнительные поля
}

Tokens

typescript
interface Tokens {
  access: string
  refresh: string
}

LoginResult / RegisterResult

typescript
interface LoginResult {
  user: AuthUser
  tokens: Tokens
  session: number
}

interface RegisterResult {
  user: AuthUser
  tokens: Tokens
  session: number
}

TokensManager

Менеджер токенов доступен через kodzero.tokensManager:

Свойства

СвойствоТипОписание
accessstringТекущий access токен
refreshstringТекущий refresh токен

Методы

МетодВозвращаетОписание
hasAccess()booleanЕсть ли access токен
hasRefresh()booleanЕсть ли refresh токен
setAccess(token)voidУстановить access токен
setRefresh(token)voidУстановить refresh токен
clear()voidОчистить оба токена

Пример

typescript
const tm = kodzero.tokensManager

if (tm.hasAccess()) {
  console.log('Access токен:', tm.access)
}

if (!tm.hasRefresh()) {
  console.log('Refresh токен отсутствует')
}

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