как истек срок действия токенов OAuth2? - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в Spring Boot и настроил OAuth2, и все хорошо работают с данными inMemory (). Я пытаюсь сохранить токен в БД, но хочу, чтобы клиент остался в памяти, потому что я всегда буду использовать один клиент для этого приложения. поэтому я создал необходимые таблицы, используя schema.sql . Я вижу, что будут использоваться только таблицы oauth_access_token и oauth_refresh_token, и когда я делаю запрос на запрос токена, система возвращает старую, если она еще действительна и новый, если нет (это хорошо, но ..). По этой причине мне трудно понять, как система может узнать, что токен истек или нет? (зная, что я не определяю токен JWT или токен любого другого конкретного типа явно)

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Спасибо за ваш ответ После некоторых исследований документации я могу понять, как токен проверяется. токен (DefaultOAuth2AccessToken) хранится в виде сериализованного объекта в БД и будет извлечен из базы данных для проверки срока действия и многих других операций ...

0 голосов
/ 05 ноября 2018

Маркер в этом сценарии является экземпляром класса DefaultOAuth2AccessToken, который имеет поле

истечения срока действия

, который заботится об истечении срока действия токена. Объект этого класса сериализован так, что он может быть сохранен в базе данных. Значения десериализации заполняются в соответствующих полях, и для проверки срока действия вызывается метод ниже.

   public boolean isExpired() {
    return this.expiration != null && this.expiration.before(new Date());
}

Класс DefaultTokenServices имеет метод createAccessToken () для создания токена. просто зайдите и посмотрите на эти классы, чтобы увидеть работу.

...