feat: 登出接口
This commit is contained in:
@@ -32,4 +32,11 @@ public interface AccountService {
|
||||
* @return 新的双 token(accessToken + refreshToken)
|
||||
*/
|
||||
LoginResponse refresh(String refreshToken);
|
||||
|
||||
/**
|
||||
* 登出,使 access token 和 refresh token 失效
|
||||
*
|
||||
* @param refreshToken 刷新令牌
|
||||
*/
|
||||
void logout(String refreshToken);
|
||||
}
|
||||
|
||||
@@ -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位随机数字,用于默认昵称
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user