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

Аутентификация по ссылке из рассылки

Описание метода

Метод позволяет автоматически авторизовать клиента на сайте при переходе по персональной ссылке из рассылки.

Как это работает:

  • В рассылке формируется персональная ссылка с тикетом аутентификации
  • Клиент переходит по ссылке на сайт
  • Сайт извлекает тикет из URL и отправляет запрос в Mindbox API
  • Mindbox проверяет тикет и возвращает данные клиента, если тикет корректен
  • Сайт авторизует клиента на основе полученных данных

Настройка авторизации через ссылку в чат-боте описана в статье.

Предварительная настройка

Перед началом интеграции убедитесь, что:

  1. Создана операция в Mindbox со следующими шагами:

    • Клиент — Авторизованный — Получить существующего по тикету
    • Клиент — Получить данные по текущему клиенту (настройте нужные поля для возврата)
  2. Настроена ссылка перехода в рассылки с использованием тикета. Например универсальный тикет на 5 минут: https://example.com/auth?ticket=${Ticket.UniversalAuthenticationCustomizableTimeTicket(5)}

Формат запроса

URL и параметры

POST https://api.mindbox.ru/v3/operations/sync?endpointId={Идентификатор точки интеграции}&operation={Название операции}&deviceUUID={Уникальный идентификатор устройства}

Подробнее о работе с V3 API, URL запросов и заголовках: Документация V3 API

Заголовки

ЗаголовокЗначение JSONЗначение XML
AuthorizationSecretKey {секретный_ключ_точки_интеграции}
Content-Typeapplication/json; charset=utf-8application/xml; charset=utf-8
Acceptapplication/jsonapplication/xml

Тело запроса

JSONCode
{ "customer": { "authenticationTicket": "<Тикет аутентификации клиента из ссылки>" } }

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

JSONCode
POST https://api.mindbox.ru/v3/operations/sync?endpointId=MindboxRu&operation=AuthenticateByTicket&deviceUUID=550e8400-e29b-41d4-a716-446655440000 Content-Type: application/json; charset=utf-8 Accept: application/json Authorization: SecretKey {Секретный ключ} { "customer": { "authenticationTicket": "YwQzgwMDY5Q0IwNEE5RDNFRDAyMzRBQTE4NTZCMkVENzAyNzE1MCIgc2lnbmF0dXJlPSJFREVEMkE2NzNDQjAwMEY1MTNGQzBGN0Q0NkY0NTY2MjRGMThCNjVCRUE5REM4MDMxRUJDNTZBOTJBODdGN0JBOTZBOTJBQzk3NjRBNjBGRURCNjYwRjAzRkY0NDgyMzkxMjI5MkI4NDhENEZGQTUwRDExODA2NjAwMkVCOTlBMSIgLz" } }

Пример ответа

Состав параметров

Параметры в узле customer зависят от полей, выбранных в шаге операции «Клиент — Получить данные по текущему клиенту». Уточните список у менеджера проекта или посмотрите в описании операции.

Корректный тикет

При передаче валидного тикета API возвращает данные клиента:

JSONCode
{ "status": "Success", "customer": { "firstName": "Иван", "lastName": "Петров", "email": "test@example.com", "isEmailInvalid": false, "mobilePhone": 79991234567, "isMobilePhoneInvalid": false, "ids": { "mindboxId": 12345, "websiteID": "user-67890" }, "changeDateTimeUtc": "2026-02-19T08:21:29.54Z" } }

Некорректный или просроченный тикет

При передаче невалидного тикета API возвращает ответ без данных клиента:

JSONCode
{ "status": "Success" }

Обработка ошибок

ProtocolError

Ошибка возникает при передаче пустого значения authenticationTicket:

JSONCode
{ "status": "ProtocolError", "errorMessage": "/customer/authenticationTicket: Поле должно быть заполнено.", "errorId": "<Идентификатор ошибки. Может отсутствовать>", "httpStatusCode": 400 }

Обработка результата на сайте

После получения ответа от API:

  1. Проверьте статус ответа (status)
  2. Проверьте наличие узла customer в ответе
  3. Если данные клиента получены — авторизуйте клиента на сайте
  4. Если данные клиента отсутствуют — перенаправьте на страницу входа

Конкретная реализация зависит от особенностей вашей интеграции.

Связанные материалы

Last modified on