我是Spring Boot的初学者,我设置了OAuth2,并且所有inMemory()数据都能很好地工作。 我正在尝试将令牌存储在数据库中,但是我希望客户端保留在内存中,因为我将始终为此应用程序使用单个客户端 因此,我使用schema.sql创建了必要的表,我看到仅将使用oauth_access_token和oauth_refresh_token表,并且当我请求请求令牌时,系统将返回旧表(如果仍然有效)和新表如果不是(这很好,但是..)。因此,我很难理解系统如何知道令牌是否过期? (知道我没有明确定义JWT令牌或任何其他特定类型的令牌)
答案 0 :(得分:0)
在这种情况下,令牌是具有字段
的DefaultOAuth2AccessToken类的实例。到期
负责令牌的到期。此类的对象被序列化以便可以存储在数据库中。随后,反序列化值填充在各个字段中,并调用下面的方法检查是否过期。
public boolean isExpired() {
return this.expiration != null && this.expiration.before(new Date());
}
DefaultTokenServices类具有用于创建令牌的createAccessToken()方法。 只需去看看这些类以了解其工作原理。
答案 1 :(得分:0)
谢谢您的回答 在文档中进行了一些研究之后,我现在可以了解如何验证令牌。 令牌(DefaultOAuth2AccessToken)作为序列化对象存储在数据库中,将从数据库中检索该令牌以验证到期日期和许多其他操作...