Spring Oauth JWT-刷新令牌
因此,我用JWT令牌实现了SpringOAuth2安全性 我可以获得JWTSpring 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、用户名、客户端
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令牌应该是无状态的,但我将它们存储在数据库中,这导致了问题