Сервис аутентификации

Общая информация

Сервис предназначен для управления процессом аутентификации в административной панели через отправку и проверку SMS-кодов.


Эндпоинты

1. Отправка SMS для авторизации

Описание: Запрашивает отправку SMS для указанного номера телефона.

  • URL: /api/v1/admin/send-sms
  • Метод: POST
  • Тело запроса:
    {
      "phone": "string"
    }
    
  • Ответы:
    • 200 OK: Успешная отправка SMS.
      {
        "success": true,
        "expireAt": 1234567890,
        "expireAtSeconds": 300
      }
      
    • 400 Bad Request: Некорректный номер телефона или другие ошибки.
    • 500 Internal Server Error: Что-то пошло не так.

2. Проверка SMS-кода

Описание: Проверяет корректность SMS-кода для указанного номера телефона.

  • URL: /api/v1/admin/verify-sms
  • Метод: POST
  • Тело запроса:
    {
      "phone": "string",
      "code": "string"
    }
    
  • Ответы:
    • 200 OK: Успешная проверка кода.
      {
        "success": true,
        "message": "string",
        "token": "string"
      }
      
    • 400 Bad Request: Некорректный код или номер телефона.
    • 500 Internal Server Error: Что-то пошло не так.

Логика работы

Сервисные методы

  • sendSMS(phone): Отправляет SMS на указанный номер телефона, если он разрешён в списке ALLOW_PHONES номеров разрешенных для входа в административную панель. Использует userHelper.normalizePhone для нормализации номера и smsService.sendSMS для отправки сообщения.
    • Если номер телефона не указан или не разрешён, выбрасывается ошибка.
  • processSMS(phone, code): Проверяет валидность SMS-кода с помощью smsService.verifySMS.
    • При успешной проверке возвращает сгенерированный токен с ролями user и admin.
    • Если код неверный, возвращает результат проверки.