From 4c9bdb84f389642daba0017b9c4325ccb4a044bd Mon Sep 17 00:00:00 2001 From: liangzai <2440983361@qq.com> Date: Wed, 18 Jun 2025 01:34:48 +0800 Subject: [PATCH] fix wx auth --- .../api/internal/logic/user/wxh5authlogic.go | 17 ++++++++++------- .../api/internal/logic/user/wxminiauthlogic.go | 6 +----- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/main/api/internal/logic/user/wxh5authlogic.go b/app/main/api/internal/logic/user/wxh5authlogic.go index 07d1f0d..4931600 100644 --- a/app/main/api/internal/logic/user/wxh5authlogic.go +++ b/app/main/api/internal/logic/user/wxh5authlogic.go @@ -46,13 +46,10 @@ func (l *WxH5AuthLogic) WxH5Auth(req *types.WXH5AuthReq) (resp *types.WXH5AuthRe } // Step 3: 处理用户信息 - var user *model.User + var userID int64 if userAuth != nil { // 已存在用户,直接登录 - user, err = l.svcCtx.UserModel.FindOne(l.ctx, userAuth.UserId) - if err != nil { - return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询用户信息失败: %v", err) - } + userID = userAuth.UserId } else { // 检查临时用户表 userTemp, err := l.svcCtx.UserTempModel.FindOneByAuthTypeAuthKey(l.ctx, model.UserAuthTypeWxh5OpenID, accessTokenResp.Openid) @@ -66,15 +63,21 @@ func (l *WxH5AuthLogic) WxH5Auth(req *types.WXH5AuthReq) (resp *types.WXH5AuthRe AuthType: model.UserAuthTypeWxh5OpenID, AuthKey: accessTokenResp.Openid, } - _, err = l.svcCtx.UserTempModel.Insert(l.ctx, nil, userTemp) + result, err := l.svcCtx.UserTempModel.Insert(l.ctx, nil, userTemp) if err != nil { return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "创建临时用户信息失败: %v", err) } + userID, err = result.LastInsertId() + if err != nil { + return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "获取新创建的临时用户ID失败: %v", err) + } + } else { + userID = userTemp.Id } } // Step 4: 生成JWT Token - token, err := l.svcCtx.UserService.GeneralUserToken(l.ctx, user.Id) + token, err := l.svcCtx.UserService.GeneralUserToken(l.ctx, userID) if err != nil { return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成JWT token失败: %v", err) } diff --git a/app/main/api/internal/logic/user/wxminiauthlogic.go b/app/main/api/internal/logic/user/wxminiauthlogic.go index 5933f2b..784d0f0 100644 --- a/app/main/api/internal/logic/user/wxminiauthlogic.go +++ b/app/main/api/internal/logic/user/wxminiauthlogic.go @@ -49,11 +49,7 @@ func (l *WxMiniAuthLogic) WxMiniAuth(req *types.WXMiniAuthReq) (resp *types.WXMi var userID int64 if userAuth != nil { // 已存在用户,直接登录 - user, err := l.svcCtx.UserModel.FindOne(l.ctx, userAuth.UserId) - if err != nil { - return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询用户信息失败: %v", err) - } - userID = user.Id + userID = userAuth.UserId } else { // 注册临时用户 userTemp, err := l.svcCtx.UserTempModel.FindOneByAuthTypeAuthKey(l.ctx, model.UserAuthTypeWxMiniOpenID, sessionKeyResp.Openid)