В основном для облегчения обработки JWT.
JWT представлен в виде последовательности URL-безопасных частей, разделенных точками ('.
'). Каждая часть содержит значение в кодировке base64url.
Это гарантирует, что а) весь токен является URL-безопасным, что упрощает технологии, которые в основном используются в контексте web ; и b) облегчает обработку "деталей", поскольку гарантируется, что разделитель деталей ('.
') не будет находиться внутри самих деталей. Если бы это был простой JSON, точка может находиться где угодно внутри самого закодированного значения, и вам нужно будет применять более сложный синтаксический анализ с поддержкой JSON, чтобы найти отдельные части. Но, учитывая гарантию того, что часть не может содержать периоды из-за кодировки base64url, алгоритм разбора прост:
Убедитесь, что JWT содержит хотя бы один символ точки ('.
').
Пусть кодированный заголовок JOSE будет частью JWT перед символом первого периода ('.
').
Base64url декодирует закодированный заголовок JOSE после ограничения, что не использовались разрывы строк, пробелы или другие дополнительные символы.
...
(Все выдержки из RFC .)