Инструкция по запуску
Шаг 1: Скачиание бинарника на машину
Выполните команду:
curl -sL https://api.objects.it-pvk.ru/verify-proxy/latest/install.sh | sudo bash
Шаг 2: Настройка конфигурационного файла
Выполните команду
sudo nano /etc/verify-proxy/config.yaml.example
У вас откроется следующий файл:
conf.yml.example
— конфигурационный файл, который содержит настройки для вашего приложения.
Пример:
# Пример конфигурационного файла для Verify Proxy Go
# Скопируйте этот файл в config.yaml и заполните нужные значения
# URL целевого сервера API верификации
target_url: "https://verify.promotivation.ru"
# Ключ шифрования (не используется в текущей реализации)
encryption_key: ""
# Порт на котором будет слушать прокси сервер
port: "8080"
# IP адрес для привязки сервера (0.0.0.0 - все интерфейсы)
bind_address: "0.0.0.0"
# Путь к файлу логов (если пустой - вывод только в консоль)
log_file: "proxy.log"
# Уровень логирования: debug, info, warn, error
log_level: "debug"
# SSH RSA публичный ключ для шифрования симметричного ключа
# Должен быть получен от поставщика
public_key: "ssh-rsa AAAAB3N===="
Настройка файла config.yaml
После установки сервиса необходимо сохранить config.yaml.example как config.yaml и заполнить конфигурационный файл config.yaml своими данными.
Основные параметры
log_file
- Указывается путь до файла, в который сервис будет записывать логи.
- Если путь не указан или указан некорректно, файл будет создан автоматически в корне проекта.
log_level
- Определяет уровень логирования.
- Возможные значения:
debug— детальная отладочная информация, полезна на этапе тестирования.info— общая информация о работе сервиса.warning— предупреждения о потенциальных проблемах.error— ошибки, требующие внимания.critical— критические ошибки, после которых сервис может быть недоступен.
public_key
- Используется для шифрования. Выдаётся при заключение договора
Шаг 3: Запуск
Для запуска выполнить в корне проекта команду:
sudo verify-proxy --config=./config.yaml
При запуске не из корня проекта пропишите путь до congig.yaml
Как и какие запросы отправлять на сервис
Данный сервиc выполняет роль прокси, который:
1. принимает HTTP-запросы на выделенный порт
2. модифицирует их по определенным правилам
3. перенаправляет запросы на целевой сервис (target_url)
4. получение ответа от целевого сервиса (target_url)
5. прокси парси и отправляет его обратно клиенту
Пример запроса в прокси Получение данных от сервиса (например, отправка данных на верификацию)
Нам необходимо отправить запрос на
https://verify.promotivation.ru/api/v1/verification/data/
Следовательно, сервис, который должен обращаться к verify.promotivation.ru, будет обращаться к
http://<proxy_ip>:8080 (в соотвтвие с примером config.yaml)
И запрос будет выглядеть следующим образом
Метод: POST
URL: http://localhost:8080//api/v1/verification/data/
Заголовки:
Authorization: Bearer <JWT_ACCESS_TOKEN>
Content-Type: application/json
Тело запроса (JSON):
{
"name": "Иван",
"patronymic": "Иванович",
"surname": "Иванов",
"birthdate": "01.01.1991",
"inn": "123456789012",
"series": "1234",
"number": "123456",
"issueDate": "20.01.2011",
"issuedWhom": "УФМС России по НСО",
"registrationAddress": "г. Новосибирск, ул. Советская, д.15, кв.15",
"file1": "base64_кодированное_изображение",
"file2": "base64_кодированное_изображение", // опционально
"consent": true,
}
- Обратите внимание, что изображение паспорта в file1 и file1 передаются в строковом формате.
- Поле secret вы не передаёте, его сгенерирует и передаст proxy сервис самостоятельно.
В этом примере запрос содержит данные, которые отправляются прокси-сервису.
Ответ от прокси-сервиса (JSON):
{
"status": "OK",
"idPerson": "уникальный_id_верифицируемого"
}
Прокси получает ответ от целевого сервиса, парсит его и отправляет обратно клиенту в формате JSON.