Здравствуйте. Пытаюсь сделать авторизацию через JWT токены с алгоритмом RS256 (а именно инструментом keycloak). Дошел до этапа валидации токена на сервере, либо в браузере. Если процесс генерации подписи токена весьма понятен:
RSASHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload), PRIVATE.KEY)
В тоже самое время вообще непонятен алгоритм проверки подписи и актуальности access_token с помощью Public.key. И нигде особо нет информации. Находил библиотеки, но показано лишь как валидировать токены с помощью уже готовых методов. Хотелось бы знать алгоритм самому. И вообще, что проверяется публичным ключок - сам токен или его подпись. И если подпись, то при ее валидности потом декодируется вручную payload токена и вычисляется по меткам времени его валидность. Или как то по другому?
И еще, пользуясь случаем спрошу - где лучше производить валидацию токена в случае SPA приложения: на фронтенде при каждом запросе к серверу, либо же на бэкэенде получаю при каждом запросе access_token с фронта?
Спасибо!