Spring Oauth JWT-刷新令牌

Spring Oauth JWT-刷新令牌,spring,spring-security,jwt,spring-security-oauth2,Spring,Spring Security,Jwt,Spring Security Oauth2,因此,我用JWT令牌实现了SpringOAuth2安全性 我可以获得JWTaccess\u令牌,但是refresh\u令牌用法我不完全理解。我可以使用刷新\u令牌获取新的访问\u令牌和新的刷新\u令牌 当我想再次使用新的刷新\u令牌时,我得到一个错误,该错误表示该令牌无效。如果我使用旧的refresh\u令牌,那么我会得到异常DuplicateKeyException,PreparedStatementCallback;SQL[插入oauth访问令牌(令牌id、令牌、身份验证id、用户名、客户端

因此,我用JWT令牌实现了SpringOAuth2安全性

我可以获得JWT
access\u令牌
,但是
refresh\u令牌
用法我不完全理解。我可以使用
刷新\u令牌
获取新的
访问\u令牌
和新的
刷新\u令牌

当我想再次使用新的
刷新\u令牌时,我得到一个错误,该错误表示该令牌无效。如果我使用旧的
refresh\u令牌
,那么我会得到异常
DuplicateKeyException,PreparedStatementCallback;SQL[插入oauth访问令牌(令牌id、令牌、身份验证id、用户名、客户端id、身份验证、刷新令牌)值(?,,,,,,,)];错误:重复的键值违反了唯一约束“oauth\u access\u token\u pkey”

这是
oauth\u访问\u令牌的DDL
表:

CREATE TABLE oauth_access_token (
    token_id varchar(510) NULL DEFAULT NULL::character varying,
    token bytea NULL,
    authentication_id varchar(510) NOT NULL,
    user_name varchar(510) NULL DEFAULT NULL::character varying,
    client_id varchar(510) NULL DEFAULT NULL::character varying,
    authentication bytea NULL,
    refresh_token varchar(510) NULL DEFAULT NULL::character varying,
    CONSTRAINT oauth_access_token_pkey PRIMARY KEY (authentication_id)
)
WITH (
    OIDS=FALSE
);
如果我删除约束
oauth\u access\u token\u pkey
,那么它可以正常工作,但是表中包含N个令牌行,而不是1个,并且由于
不正确的结果,无法发出新令牌

我应该怎么做才能使刷新令牌工作?

我用JwtTokenStore而不是JdbcTokenStore解决了这个“问题”。JWT令牌应该是无状态的,但我将它们存储在数据库中,这导致了问题