Недавно я начал разрабатывать поставщика идентификации OAuth/OIC с Spring Boot 3, Spring Security 6 и Spring Authorization Server. Я новичок в OAuth, но имею некоторый опыт работы с веб-аутентификацией на основе сеансов и, как правило, понимаю JWTS. Обновить токены и автономные jwt токены доступа. Таким образом, я получаю возможность отменять долгоживые токены обновления по желанию (потому что они проверяются на стороне сервера каждый раз, когда они используются), но токены доступа с более коротким добытом могут использоваться и доверять без Клиент должен спросить сервер ко всему (кроме общедоступного ключа подписи). Токен обновления будет использоваться время от времени, чтобы запросить новый токен доступа с сервера, когда старый истекает. интерфейс. Этот интерфейс будет хранить объекты OAuth2Authorization постоянно (или в памяти, в зависимости от того, какая реализация используется). Объекты OAuth2Authorization могут содержать как токен обновления, так и токен доступа. Почему оба они должны храниться с помощью OAuth2authorizationservice? Таким образом, нет никакой пользы для их постоянного хранения, потому что им должны доверять, как и до тех пор, пока они не истекают. Клиенты не ожидают, что будут проверять JWT на сервере, потому что это побеждает точку самостоятельного токена! OAUTH2Authorizationservice, охватывая свои базы, сохраняя обе токенс-серверные, на случай, если вы настроили токены обновления и токены доступа к непрозрачным? Я собираюсь хранить на стороне сервера токенов в постоянном экземпляре Redis, поэтому я не хочу тратить пространство в памяти, если мне не придется абсолютно. Это нормально для моей реализации OAuth2AuthorizationService, чтобы просто хранить токены обновления и сопоставить их с идентификатором или информацией пользователя, а затем создайте объект OAuth2Authorization на месте, когда его запрашивают?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ess-tokens