如何检测过期的OAuth2令牌?

时间:2018-11-04 19:43:44

标签: spring-boot oauth-2.0 spring-security-oauth2

我是Spring Boot的初学者,我设置了OAuth2,并且所有inMemory()数据都能很好地工作。 我正在尝试将令牌存储在数据库中,但是我希望客户端保留在内存中,因为我将始终为此应用程序使用单个客户端 因此,我使用schema.sql创建了必要的表,我看到仅将使用oauth_access_token和oauth_refresh_token表,并且当我请求请求令牌时,系统将返回旧表(如果仍然有效)和新表如果不是(这很好,但是..)。因此,我很难理解系统如何知道令牌是否过期? (知道我没有明确定义JWT令牌或任何其他特定类型的令牌)

2 个答案:

答案 0 :(得分:0)

在这种情况下,令牌是具有字段

的DefaultOAuth2AccessToken类的实例。
  

到期

负责令牌的到期。此类的对象被序列化以便可以存储在数据库中。随后,反序列化值填充在各个字段中,并调用下面的方法检查是否过期。

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

DefaultTokenServices类具有用于创建令牌的createAccessToken()方法。 只需去看看这些类以了解其工作原理。

答案 1 :(得分:0)

谢谢您的回答 在文档中进行了一些研究之后,我现在可以了解如何验证令牌。 令牌(DefaultOAuth2AccessToken)作为序列化对象存储在数据库中,将从数据库中检索该令牌以验证到期日期和许多其他操作...