feat: 登出接口

This commit is contained in:
2026-06-17 10:16:39 +08:00
parent 39d4c018e4
commit b512d50c78
4 changed files with 43 additions and 0 deletions

View File

@@ -32,4 +32,11 @@ public interface AccountService {
* @return 新的双 tokenaccessToken + refreshToken
*/
LoginResponse refresh(String refreshToken);
/**
* 登出,使 access token 和 refresh token 失效
*
* @param refreshToken 刷新令牌
*/
void logout(String refreshToken);
}

View File

@@ -89,6 +89,17 @@ public class AccountServiceImpl implements AccountService {
return new LoginResponse(accessToken, refreshToken);
}
@Override
public void logout(String refreshToken) {
// 获取当前登录用户ID用于日志
String loginId = (String) StpUtil.getLoginId();
// 登出 Sa-Token使 access token 失效
StpUtil.logout();
// 撤销 refresh token使其在 Redis 中删除
refreshTokenService.revoke(refreshToken);
log.info("用户已登出: userId={}", loginId);
}
/**
* 生成6位随机数字用于默认昵称
*/