@@ -133,7 +133,7 @@ public R<Boolean> logout(@RequestHeader(value = HttpHeaders.AUTHORIZATION, requi
133
133
}
134
134
135
135
String tokenValue = authHeader .replace (OAuth2AccessToken .TokenType .BEARER .getValue (), StrUtil .EMPTY ).trim ();
136
- return removeToken (tokenValue );
136
+ return removeToken (new String []{ tokenValue } );
137
137
}
138
138
139
139
/**
@@ -170,25 +170,26 @@ public void checkToken(String token, HttpServletResponse response, HttpServletRe
170
170
* 令牌管理调用
171
171
* @param token token
172
172
*/
173
- @ Inner
174
- @ DeleteMapping ( "/{token}" )
175
- public R < Boolean > removeToken ( @ PathVariable ( "token" ) String token ) {
176
- OAuth2Authorization authorization = authorizationService .findByToken (token , OAuth2TokenType .ACCESS_TOKEN );
177
- if (authorization == null ) {
178
- return R .ok ();
179
- }
173
+ @ DeleteMapping ( "/delete" )
174
+ public R < Boolean > removeToken ( @ RequestBody String [] accessTokens ) {
175
+ for ( String token : accessTokens ) {
176
+ OAuth2Authorization authorization = authorizationService .findByToken (token , OAuth2TokenType .ACCESS_TOKEN );
177
+ if (authorization == null ) {
178
+ return R .ok ();
179
+ }
180
180
181
- OAuth2Authorization .Token <OAuth2AccessToken > accessToken = authorization .getAccessToken ();
182
- if (accessToken == null || StrUtil .isBlank (accessToken .getToken ().getTokenValue ())) {
183
- return R .ok ();
181
+ OAuth2Authorization .Token <OAuth2AccessToken > accessToken = authorization .getAccessToken ();
182
+ if (accessToken == null || StrUtil .isBlank (accessToken .getToken ().getTokenValue ())) {
183
+ return R .ok ();
184
+ }
185
+ // 清空用户信息
186
+ cacheManager .getCache (CacheConstants .USER_DETAILS ).evict (authorization .getPrincipalName ());
187
+ // 清空access token
188
+ authorizationService .remove (authorization );
189
+ // 处理自定义退出事件,保存相关日志
190
+ SpringContextHolder .publishEvent (new LogoutSuccessEvent (new PreAuthenticatedAuthenticationToken (
191
+ authorization .getPrincipalName (), authorization .getRegisteredClientId ())));
184
192
}
185
- // 清空用户信息(立即删除)
186
- cacheManager .getCache (CacheConstants .USER_DETAILS ).evictIfPresent (authorization .getPrincipalName ());
187
- // 清空access token
188
- authorizationService .remove (authorization );
189
- // 处理自定义退出事件,保存相关日志
190
- SpringContextHolder .publishEvent (new LogoutSuccessEvent (new PreAuthenticatedAuthenticationToken (
191
- authorization .getPrincipalName (), authorization .getRegisteredClientId ())));
192
193
return R .ok ();
193
194
}
194
195
@@ -197,7 +198,6 @@ public R<Boolean> removeToken(@PathVariable("token") String token) {
197
198
* @param params 分页参数
198
199
* @return
199
200
*/
200
- @ Inner
201
201
@ PostMapping ("/page" )
202
202
public R <Page > tokenList (@ RequestBody Map <String , Object > params ) {
203
203
// 根据分页参数获取对应数据
0 commit comments