Допустим, у нас есть администратор, который хочет аннулировать все пользовательские токены (эффективно выходя из системы везде), но без блокировки его учетной записи.Пользователь все еще должен иметь возможность войти в систему нормально.
Пример:
clientIds.forEach(clientId -> {
Collection<OAuth2AccessToken> accessTokens = tokenStore.findTokensByClientIdAndUserName(clientId, username);
accessTokens.forEach(accessToken -> tokenServices.revokeToken(accessToken.getValue()));
});
Это работает ТОЛЬКО ТОЛЬКО ЕСЛИ токены доступа все еще действительны (не устарели), поскольку токены доступа найдены и на их основе, revokeToken
делает недействительными обаполучить доступ и обновить токены.Однако, если срок действия маркера доступа истек, findTokensByClientIdAndUserName
ничего не находит, таким образом, ничто не является недействительным, и токен обновления все еще действителен и готов к использованию.
Я посмотрел везде, и похоже, что все отменяютобновить токены, используя токен доступа или передав значение токена обновления в качестве параметра запроса.
Можно ли найти токен обновления, не используя токен доступа?