Я внедряю систему входа с помощью схемы JWT (JSON Web Token). Как правило, после того, как пользователь входит в систему/входит в систему, сервер подписывает JWT и передает его клиенту.
Затем клиент возвращает токен с каждым запросом, и сервер проверяет токен перед отправкой ответа.
Это в значительной степени, как вы ожидаете, но у меня есть некоторые проблемы с логикой процесса. Из всех математических статей, которые я прочитал, кажется, что для подписи RSA используются асимметричные ключи. Поскольку открытый ключ, как следует из его названия, предоставляется клиенту, а закрытый ключ хранится на сервере, имеет смысл подписать JWT открытым ключом, который отправляется клиенту, и проверить его на стороне сервера, используя закрытый ключ.
Однако на каждом примере и библиотеке я вижу, что все наоборот. Есть идеи, почему это так? Если JWT подписан с закрытым ключом и проверен с открытым ключом, в чем смысл?