Используйте пользовательский RefreshTokenGranter в Spring oAuth2 - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу удалить токен Firebase на моем сервере Spring, когда пользователь вышел из системы. Это нормально, когда он использует кнопку «Выйти» - я могу обработать ее на сервере и удалить токен Firebase. Но что, если oAuth2 истек срок действия маркеров доступа и обновления? Если у меня есть этот случай, то, я думаю, я могу удалить токен Firebase следующим образом:

  • переопределить RefreshTokenGranter.getAccessToken()
  • поймать исключение недопустимого токена из getTokenServices().refreshAccessToken()
  • получить clientId от ClientDetails и удалить его токен Firebase

Но как я могу это реализовать? Проблема в том, что я не могу добавить этот пользовательский грантер в AuthServerConfiguration.tokenGranter():

//...
granters.add(new RefreshTokenGranter(...));
//...

Если я добавлю его вот так, он не будет вызван, но будет вызван default RefreshTokenGranter.

Итак, как я могу использовать свой пользовательский RefreshTokenGranter? И это хорошее решение для такой задачи или, может быть, я должен использовать другой способ перехвата токенов с истекшим сроком?

...