2016-03-24 8 views
2

В аутентификации маркера JWT упоминается «.». используется для разделения трех частей токена (заголовок, требование, подпись). Но в случае, если моя подпись или закодированная претензия содержит "." было бы сложно точное содержание 3-х разделов. Anybosy натолкнулся на эту ситуацию или на то, как справиться с ней?JWT token Как разделить заявку и подпись

Я сгенерировал подпись, используя HMACSHA256 (закодированный иск json), но я получаю «.». в середине данных подписи. когда я конкатенирую все 3 части, я получаю один дополнительный «.».

+0

Если заказ этих трех частей является заголовком, претензией и подписью, вы должны знать, что после второго «.» остальное - подпись, не так ли? – AAlferez

+0

Да, заголовок и претензии - это кодированное содержимое Base64URLEncoder. Мое сомнение в том, что, если Header/Claims также содержит «.» – Mathiyazhagan

+0

Из того, что я вижу, они используют * HMACSHA256 ( base64UrlEncode (header) + "." + base64UrlEncode (полезная нагрузка), секрет) * на официальном сайте – AAlferez

ответ

1

Три части маркера JWT - это все base64 encoded и поэтому никогда не будут содержать символ точки.

Даже если ваша претензия или подпись содержит этот символ, после того, как base64 кодирует эту часть, точка больше не будет отображаться на выходе.

Смежные вопросы