From a34a28a60f5e80eac0ff412e9cb139576f313abd Mon Sep 17 00:00:00 2001 From: qian Date: Sat, 13 Jun 2026 14:55:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BD=BF=E7=94=A8=E7=A6=81=E6=AD=A2?= =?UTF-8?q?=E8=AF=8D=E6=B1=87=E6=97=B6=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=B8=8D=E5=87=86=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/logic/tenant/auth.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/logic/tenant/auth.go b/internal/logic/tenant/auth.go index 7fc2c3d..bb17ada 100644 --- a/internal/logic/tenant/auth.go +++ b/internal/logic/tenant/auth.go @@ -34,14 +34,10 @@ func (s *sTenant) Register(ctx context.Context, req *v1.TenantRegisterReq) (*v1. tenantCode := strings.TrimSpace(strings.ToLower(req.TenantCode)) username := strings.TrimSpace(req.Username) - - // Validate username format - if err := common.ValidateUsername(username); err != nil { - return nil, common.NewBusinessError(consts.CodeInvalidUsername, err.Error()) - } - - // Validate forbidden words in username, tenant name, tenant code tenantName := strings.TrimSpace(req.TenantName) + + // 先校验禁用词:命中禁用词时优先返回更准确的提示, + // 避免被用户名格式校验的「不能包含特殊字符或中文」遮盖真实原因 if err := common.ValidateForbiddenWords(ctx, username, "用户名"); err != nil { return nil, common.NewBusinessError(consts.CodeForbiddenWord, err.Error()) } @@ -52,6 +48,11 @@ func (s *sTenant) Register(ctx context.Context, req *v1.TenantRegisterReq) (*v1. return nil, common.NewBusinessError(consts.CodeForbiddenWord, err.Error()) } + // Validate username format + if err := common.ValidateUsername(username); err != nil { + return nil, common.NewBusinessError(consts.CodeInvalidUsername, err.Error()) + } + // Check register rate limit (IP + global) ipAddress := g.RequestFromCtx(ctx).GetClientIp() if err := common.CheckRegisterRateLimit(ctx, ipAddress); err != nil {