Перейти к основному содержимому
Войти

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

Hotel Management API использует JWT (JSON Web Token) для аутентификации пользователей.

Типы токенов

Access Token

  • Используется для авторизации запросов к API
  • Время жизни: 1 час
  • Передается в заголовке Authorization

Refresh Token

  • Используется для обновления истекших access токенов
  • Время жизни: 30 дней
  • Хранится безопасно на клиенте

Авторизация

Вход в систему

POST /auth/login

Параметры:

  • identifier - email или номер телефона
  • password - пароль пользователя

Пример запроса:

{
"identifier": "user@example.com",
"password": "secure_password"
}

Ответ:

{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "refresh_token_string",
"token_type": "bearer",
"expires_in": 3600,
"user": {
"id": "uuid",
"email": "user@example.com",
"role": "tourist",
"first_name": "Имя",
"last_name": "Фамилия"
}
}

Использование токена

Включайте access token в заголовок Authorization каждого запроса:

Authorization: Bearer YOUR_ACCESS_TOKEN

Пример запроса:

curl -X GET \
'https://stage.arkhyz-club.ru/hotels' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

Обновление токена

Когда access token истекает, используйте refresh token для получения нового:

POST /auth/refresh

Параметры:

{
"refresh_token": "your_refresh_token_here"
}

Ответ:

{
"access_token": "new_access_token",
"token_type": "bearer",
"expires_in": 3600
}

Выход из системы

POST /auth/logout

Этот запрос аннулирует текущие токены пользователя.

Получение информации о пользователе

GET /auth/me

Возвращает информацию о текущем авторизованном пользователе.

Роли пользователей

API поддерживает следующие роли:

  • tourist - обычный пользователь/турист
  • hotelier - владелец/управляющий отелем
  • tour_operator - туроператор
  • transfer_provider - поставщик трансферных услуг
  • instructor - инструктор по активностям
  • restaurant - владелец/управляющий рестораном
  • admin - администратор системы

Доступные методы API зависят от роли пользователя.

Коды ошибок аутентификации

  • 401 Unauthorized - Токен отсутствует или недействителен
  • 403 Forbidden - Недостаточно прав для выполнения операции
  • 422 Unprocessable Entity - Неверные данные для входа

Безопасность

  • Никогда не передавайте токены через URL параметры
  • Храните refresh токены безопасно
  • Используйте HTTPS для всех запросов
  • Регулярно обновляйте токены