Как сформировать JSON Web Token?

Токен состоит из трех частей, разделенных точкой (.):

  1. Заголовок
  2. Полезные данные
  3. Подпись

Заголовок

Заголовок состоит из двух полей: тип токена и алгоритм формирования подписи:

{
  "alg": "HS256",
  "typ": "JWT"
}

Полезные данные

Полезные данные содержат обязательные и необязательные поля.

Параметр Обязательный Описание
jti да Уникальный идентификатор токена
iss да Store Id
iat да Время выпуска токена (Unix epoch)
email да Email
name да Полное имя
exp нет Время экспирации токена (Unix epoch)
picture нет URL аватара
phone нет Телефон
external_id нет Уникальный идентификатор пользователя
custom_attributes нет Произвольные атрибуты

Пример:

{
              "jti": "b219a441cfc9e6419fe87d1ed55eae7a",
              "iss": "57a1dd0955b4a36599000003",
              "iat": "1471512369",
              "exp": "1471512400",
            "email": "grushenka@yandex.ru",
             "name": "Аграфена Петрова",
            "phone": "+79651755423",
      "external_id": "12345",
"custom_attributes": {"eye_colour": "racing green"}
}

Подпись

Чтобы создать подпись, необходимо иметь закодированные с помощью алгоритма Base64 заголовок и полезные данные, а также секретный ключ.

Пример формирования токена (псевдокод):

header      = {...}
header64    = base64UrlEncode(header)
payload     = {...}
payload64   = base64UrlEncode(payload)
signature   = HMACSHA256(header64 + "." + payload64, <YOUR SECRET CODE>)
signature64 = base64UrlEncode(signature)
token       = header64 + "." + payload64 + "." + signature64

Секретный код (YOUR SECRET CODE) указывается в личном кабинете.

Ресурсы

results for ""

    No results matching ""