fix: 统一前后端错误提示处理,修复3个问题
1. 管理端 request.js: 所有401均优先显示后端实际message, 非登录页才清除Token并跳转 2. 前台用户端 request.js: 区分登录/注册请求与已认证请求, 登录失败时只显示后端message,不清Token不跳转 3. 后端 auth_service: 登录时用户不存在统一返回"账号或密码错误" (防止用户枚举攻击,不再返回404"用户不存在") Made-with: Cursor
This commit is contained in:
@@ -139,11 +139,11 @@ func (s *AuthService) Login(ctx context.Context, req *dto.LoginRequest, clientIP
|
||||
}
|
||||
}()
|
||||
|
||||
// 按用户名或邮箱查找用户
|
||||
// 按用户名或邮箱查找用户(用户不存在时统一返回密码错误,防止枚举攻击)
|
||||
user, findErr := s.userDAO.FindByAccount(ctx, req.Account)
|
||||
if findErr != nil {
|
||||
if errors.Is(findErr, gorm.ErrRecordNotFound) {
|
||||
err = ErrUserNotFound
|
||||
err = ErrPasswordWrong
|
||||
} else {
|
||||
err = findErr
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user