Для front to back интеграции на страницу сайта необходимо использовать ApiKey и код из SMS для авторизации:

  • ApiKey для каждого сайта свой.
    Поэтому для каждого ApiKey необходимо предоставить доменное имя, так как оно будет проверять разрешения для обращений с домена: все доступные URL поддерживают CORS.
  • SMS код и используется для авторизации.
    Код проверяется системой защиты от автоматического доступа. При получении положительного ответа авторизация считается успешной.

Для авторизации:

  1. Укажите в параметре ApiKey полученный ApiKey
  2. Отправьте запросы:
    1. /guest/v1/auth/sendsms — отправка кода гостю в СМС. Повторная отправка будет возможна через время, указанное в ответе
    2. /guest/v1/auth/checksms передача кода из СМС, в ответ придет пара токенов. Токен авторизации необходимо использовать во всех запросах в HTTP заголовке Authorization.
      Используйте Refresh токен при истечении времени действия токена авторизации, чтобы получить новую пару.
    3. /guest/v1/auth/refresh — обновление токенов по истечении времени действия токена авторизации.
swagger: "2.0" info: title: RKeeper guest auth. version: 1.0.0 host: "api.plazius.ru" schemes: - https securityDefinitions:  ApiKeyAuth: type: apiKey in: header name: ApiKey security: - ApiKeyAuth: [] basePath: /pub/ consumes: - application/json produces: - application/json paths:  /guest/v1/auth/sendsms: post: tags: - GuestAuth summary: отправка кода гостю в СМС operationId: GuestSendSms parameters: - name: body in: body required: true schema: $ref: '#/definitions/SendSmsRequest' responses: 200: description: Success schema: $ref: '#/definitions/SmsSendResult' 400: description: Bad request $ref: '#/definitions/ErrorMessage' 401: description: Unauthorized request $ref: '#/definitions/ErrorMessage' 422: description: Unprocessable entity. При повторной отправке до истечения времени $ref: '#/definitions/ErrorMessage'  /guest/v1/auth/checksms: post: tags: - GuestAuth summary: проверка кода из СМС operationId: GuestCheckSms parameters: - name: body in: body required: true schema: $ref: '#/definitions/CheckSmsRequest' responses: 200: description: Success schema: $ref: '#/definitions/AuthResult' 401: description: Unauthorized request $ref: '#/definitions/ErrorMessage'  /guest/v1/auth/refresh: post: tags: - GuestAuth summary: обновление токенов авторизации operationId: GuestRefreshToken parameters: - name: body in: body required: true schema: $ref: '#/definitions/GuestRefreshRequest' responses: 200: description: Success schema: $ref: '#/definitions/AuthResult' 401: description: Unauthorized request $ref: '#/definitions/ErrorMessage' definitions: SendSmsRequest: required: - phone - captchaResponse type: object properties: phone: type: string description: Телефон в формате +70000000000 x-nullable: false captchaResponse: type: string description: Ответ системы защиты от автоматического доступа (Captcha) x-nullable: false additionalProperties: false description: Запрос на отправку СМС SmsSendResult: required: - nextAttemptSecondsTtl type: object properties: nextAttemptSecondsTtl: type: number description: Время в секундах до следующего запроса format: int64 additionalProperties: false description: Результат отправки СМС CheckSmsRequest: required: - phone - code type: object properties: phone: type: string description: Телефон в формате +70000000000 x-nullable: false code: type: string description: код из СМС x-nullable: false additionalProperties: false description: Проверка кода из СМС GuestRefreshRequest: required: - authToken - refreshToken - phone type: object properties: authToken: type: string description: Токен авторизации, который уже истек x-nullable: false refreshToken: type: string description: Токен нужный для обновления x-nullable: false phone: type: string description: Телефон в формате +70000000000 x-nullable: false additionalProperties: false description: Обновление токенов гостя AuthResult: required: - token - refreshToken - aliveSecondsTtl type: object properties: token: type: string description: Токен авторизации, нужно использовать во всех запросах x-nullable: false refreshToken: type: string description: Токен нужный для обновления x-nullable: false aliveSecondsTtl: type: number description: Время жизни токена в секундах format: int64 additionalProperties: false description: Результат авторизации ErrorMessage: required: - message type: object properties: message: type: string description: Текст причины ошибки x-nullable: false additionalProperties: false description: ошибка