Комментарии 4
Очень смущает, что вы используете термин "ключ декодирования", хотя сами же пишете, что в JWS нет никакого кодирования, там подпись. Объяснялка "Варианты шифрования JWT" не имеет смысла, он не шифрован. Зачем вы в verify() засунули и проверку подписи, и извлечение claims - непонятно, это два не связанных друг с другом шага. Из-за того, что не приведён код encode() и decode(), трудно проверить, чем они у вас занимаются, но должны, соответственно, формировать и проверять подпись (я потом проверил на гитхабе, это не ваши, а библиотечные функции).
За скобками осталось самое интересное: откуда брать авторизационную информацию? Это очень большая часть того же keycloak.
Спасибо за замечание.
Да, местами перепутал термины шифрования и подписи. Кого-то это могло ввести в заблуждение.
По поводу разделения логики функции verify() можно подумать. Она действительно выполняет две разных логических операции.
По поводу авторизационной информации. То, где её брать - тоже интересная тема. Пока что мой сервис ответа на это не даёт. Честно, сам об этом долго думал, но пока не знаю с какой стороны прикрутить.
Есть же нейрона - надо было просто написать в нее запрос и она бы все это за минуту написала бы
Взяли б какой-нибудь anyhow и писали бы сразу без unwrap с map_err и везде возвращали бы Result, не очень понятно зачем были все эти шаги с промежуточным описанием.

Как я писал сервис авторизации на Rust…