Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Service specification

Сценарій поведінки:

Користувач вводить номер телефону та ОТР (одноразовий код) в систему

Якщо код введений користувачем вірний, то система надішле у відповідь
{
   "meta": {
       "code": 200,
        "url": "https://example.com/resource",
        "type": "object",
         "request_id": "req-adasdoijasdojsda"
},
 "data": {
    "id": "7d23bebb-1cf3-4221-bf21-18aada444756",
    "status": "VERIFIED",
    "code_expired_at": "2017-07-10T12:20:16.300597Z",
     "active": true
    }
}

Де:

  • Id- ідентифікатор запиту
  • code_expired_at= час до якого код дійсний в системі
  • Active- статус коду в системі
  • Status- відображає статус СМС
"status": "NEW""status": "TRUE""status": "FALSE""status": "VERIFIED""status": "UNVERIFIED""status": "EXPIRED""status": "CANCELED"
при створенні запиту, за замовчуванням 

при можливості верифікації:

  • при створенні запиту за замовчуванням,
  • якщо було менше 4 спроб використання
  • якщо не сплинув строк придатності

при неуспішній верифікаціїі:

  • якщо використали код
  • якщо більше 3 спроб погашення
  • якщо сплинув термін для верифікації при  верифікації, в тому числі успішній верифікації
При успішному проходженніпри неуспішному проходженні верифікації (більше 3 спроб)Сплив строк придатності кодуВстановлюється провайдером, у випадку, якщо СМС не може бути доставленим.

Якщо код введений користувачем невірний, то:

Якщо це одна з перших трьох невірних спроб, система відповість
{
  "error": {
  "message": "Invalid verification code",
  "type": "forbidden"
},
  "meta": {
    "code": 403,
    "request_id": "xxx",
    "type": "object",
    "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
   }
}


Якщо, це четверта (і більше) невдала спроба ввести код, то система відповість:
{
  "error": {
     "message": "Maximum attempts exceed",
     "type": "forbidden"
          },
  "meta": {
      "code": 403,
      "request_id": "xxx",
      "type": "object",
      "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
          }
}


Якщо вірний код введено після сплину строку придатності коду (OTP_LIFETIME=300 секунд) :
{
  "data": {
     "active": false,
     "code_expired_at": "2020-03-13T15:14:45.640890Z",
      "id": "6b5c534c-1664-4fdc-8128-96caaeb27089",
      "status": "expired"
  },
 "meta": {
     "code": 200,
     "request_id": "xxx",
     "type": "object",
      "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
   }
}


Якщо невірний код введено після сплину строку придатності коду :
{
  "error": {
     "message": "Invalid verification code",
     "type": "forbidden"
   },
   "meta": {
     "code": 403,
     "request_id": "xxx",
     "type": "object",
     "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
    }
}

...

Verify code

    • Search active code for phone number
    • Check code expiration period
    • Compare codes

Matched

    • Deactivate code

    • Add phone number to verified_phones

Not matched

    • Deactivate code

    • Invoke Send verification code
    • Return error