Клиентская аутентификация

Клиентская аутентификация необходима для оформления заказов, а так же для просмотра профиля покупателя и истории заказов.

API Zenky позволяет выполнять аутентификацию двумя разными способами — по коду из SMS и по паре почта-пароль.

Разница между этими способами заключается в том, что в случае, если пользователь не существует, то при входу по коду из SMS он будет создан автоматически. Вход по почте-паролю возможен только для ранее регистрировавшихся пользователей.

Вход по коду из SMS

Для входа по коду из SMS необходимо выполнить POST-запрос на URL https://my.zenky.io/api/auth/passwordless/request с указанными полями:

В случае успешной отправки SMS с паролем в ответе будет содержаться следующий объект:

{
  "data": {
    "queued": true,
    "sent_to": "+71234567890"
  }
}

Подтверждение входа

Чтобы закончить процедуру аутентификации необходимо отправить полученный от пользователя код из SMS POST-запросом на URL https://my.zenky.io/api/auth/passwordless/login с указанными полями:

Успешный вход

В случае успешного подтверждения входа в ответе будет содержаться токен и базовый объект пользователя:

{
  "data": {
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6Im...",
    "user": {
      "id": "a40a05c3-f6ba-4ba0-89e2-488176e14cfd",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "email": "[email protected]",
      "phone": {
        "country": "RU",
        "e164": "+71234567890",
        "international": "+7 123 456-78-90",
        "national": "+7 (123) 456-78-90"
      },
      "timezone": "Europe/Moscow",
      "locale": "ru",
      "default_avatar_url": "https://www.gravatar.com/avatar/767fc9c115a1b989744c755db47feb60?s=100",
      "created_at": {
        "timezone": "Europe/Moscow",
        "datetime_utc": "2019-05-28 00:00:00",
        "datetime": "2019-05-28 03:00:00",
        "datetime_at": "28.05.2019 в 03:00",
        "diff": "5 минут назад"
      },
      "updated_at": {
        "timezone": "Europe/Moscow",
        "datetime_utc": "2019-05-28 00:00:00",
        "datetime": "2019-05-28 03:00:00",
        "datetime_at": "28.05.2019 в 03:00",
        "diff": "5 минут назад"
      }
    }
  }
}

Ограничение множественной отправки

В рамках предотвращения множественной отправки SMS мы не разрешаем инициировать вход по SMS чаще, чем один раз в одну минуту (ограничение накладывается по номеру телефона).

В случае, если не истёк срок запрета на повторную отправку, вы получите сообщение об ошибке с HTTP-статусом 429 и следующим содержанием:

{
  "error": {
    "message": "You have to wait 40 seconds before next request.",
    "http_code": 429,
    "error_code": "auth.passwordless_request_cooldown",
    "meta": {
      "cooldown": 40,
      "current_time": "2019-05-28 08:24:14",
      "available_at": "2019-05-28 08:24:55"
    }
  }
}

Мета-данные ошибки содержат количество секунд, в течение которых нельзя отправлять повторные запросы (ключ cooldown), текущее серверное время в UTC (current_time) и время, начиная с которого можно отправить ещё один запрос (available_at - с current_time добавляется количество секунд плюс одна секунда).

Вход по паролю

Покупатели, у которых уже имеется аккаунт, могут войти с почтой и паролем. Для этого необходимо отправить POST-запрос на URL https://my.zenky.io/api/login с указанными полями:

В случае успешного входа будет возвращён ответ с токеном и информацией о пользователе.

Регистрация

Для регистрации нового пользователя необходимо отправить POST-запрос на URL https://my.zenky.io/api/register с указанными полями:

В случае успешной регистрации будет возвращён ответ с токеном и информацией о пользователе.

Методы

Список поддерживаемых методов клиентской аутентификации.

Запрос кода подтверждения

Вход с кодом подтверждения

Вход с паролем

Регистрация