私はJWTトークンでSpring Oauth2セキュリティを実装しました。スプリングOauth JWT - リフレッシュトークン
私はJWT access_tokens
を得ることができますが、refresh_token
の使い方は完全にわかりません。私はrefresh_token
を使って、新しいaccess_token
と新しいrefresh_token
を得ることができます。
新しいrefresh_token
を再度使用したいときに、このトークンが無効であるというエラーが表示されます。
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_access_token_pkey
を削除した場合、それは正常に動作しますが、その後の表では、N・トークンの行が含まれています。私は古いrefresh_token
を使用している場合、私はこれがoauth_access_token
テーブルのDDLで例外にDuplicateKeyException, PreparedStatementCallback; SQL [insert into oauth_access_token (token_id, token, authentication_id, user_name, client_id, authentication, refresh_token) values (?, ?, ?, ?, ?, ?, ?)]; ERROR: duplicate key value violates unique constraint "oauth_access_token_pkey"
を取得します1の代わりにIncorrectResultSizeDataAccessException
のために新しいトークンを発行することはできません。
更新トークンを作成するにはどうすればよいですか?