Все запросы от клиента к серверу осуществляются посредством HTTP-запросов. Каждый запрос должен содержать заголовки следующего содержания:
Authorization: Bearer [oauth-token]
гдеoauth-token
– ключ доступа в формате JSON Web Token (JWT).
Данный токен будет формироваться из трех частей.
Заголовок
{ "alg": "HS256", "typ": "JWT" }
Полезная нагрузка
{ "exp": "1234567890", "sPol": "98-96", "nPol": "23465787", "birthday": "1987-05-18" }
гдеsPol
– серия полиса ОМО;nPol
– номер полиса ОМО;birthday
– дата рождения;exp
– отметка времени в UNIX формате, когда истекает срок действия токена.
Подпись
Заголовок и нагрузка кодируются в base64. Затем они объединяются в строку через точку.
Затем эта строка и секретный ключ поступает на вход алгоритма шифрования, указанного в заголовке (ключ «alg»). Секретный ключ это строка, которая автоматически формируется и хранится на серверной и клиентской стороне.
Пример:
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
Окончательный JWT выглядит следующим образом: заголовок, полезная нагрузка в кодировке base64, а также подпись объединяются в одну строку, разделенные точкой.
Пример.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ