refactor: 修复DRY分页 + LoD违规(RefreshToken业务逻辑下沉)
- audit_service.List()使用common.Pagination替代手动分页计算 - RefreshToken封禁状态检查从控制器移至TokenService.RefreshAccessToken - 消除控制器层业务逻辑,符合瘦控制器铁律
This commit is contained in:
@ -218,25 +218,20 @@ func (ac *AuthController) RefreshToken(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
accessToken, user, err := ac.tokenService.RefreshAccessToken(refreshToken)
|
||||
accessToken, _, err := ac.tokenService.RefreshAccessToken(refreshToken)
|
||||
if err != nil {
|
||||
common.ClearAuthCookies(c, ac.cfg)
|
||||
switch err {
|
||||
case common.ErrTokenExpired, common.ErrTokenRevoked:
|
||||
common.Error(c, http.StatusUnauthorized, "登录凭证已失效,请重新登录")
|
||||
case common.ErrUserBanned:
|
||||
common.Error(c, http.StatusForbidden, "账号已被封禁")
|
||||
default:
|
||||
common.Error(c, http.StatusUnauthorized, "请重新登录")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 防止封禁用户通过 refresh 续期(状态检查是认证业务域,放在控制器层)
|
||||
if user.Status == model.StatusBanned {
|
||||
common.ClearAuthCookies(c, ac.cfg)
|
||||
common.Error(c, http.StatusForbidden, "账号已被封禁")
|
||||
return
|
||||
}
|
||||
|
||||
common.SetAccessCookie(c, accessToken, ac.cfg)
|
||||
|
||||
common.Ok(c, nil)
|
||||
|
||||
Reference in New Issue
Block a user