fix wx auth

This commit is contained in:
liangzai 2025-06-18 01:34:48 +08:00
parent 84c9965d9a
commit 4c9bdb84f3
2 changed files with 11 additions and 12 deletions

View File

@ -46,13 +46,10 @@ func (l *WxH5AuthLogic) WxH5Auth(req *types.WXH5AuthReq) (resp *types.WXH5AuthRe
} }
// Step 3: 处理用户信息 // Step 3: 处理用户信息
var user *model.User var userID int64
if userAuth != nil { if userAuth != nil {
// 已存在用户,直接登录 // 已存在用户,直接登录
user, err = l.svcCtx.UserModel.FindOne(l.ctx, userAuth.UserId) userID = userAuth.UserId
if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询用户信息失败: %v", err)
}
} else { } else {
// 检查临时用户表 // 检查临时用户表
userTemp, err := l.svcCtx.UserTempModel.FindOneByAuthTypeAuthKey(l.ctx, model.UserAuthTypeWxh5OpenID, accessTokenResp.Openid) 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, AuthType: model.UserAuthTypeWxh5OpenID,
AuthKey: accessTokenResp.Openid, 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 { if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "创建临时用户信息失败: %v", err) 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 // 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 { if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成JWT token失败: %v", err) return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成JWT token失败: %v", err)
} }

View File

@ -49,11 +49,7 @@ func (l *WxMiniAuthLogic) WxMiniAuth(req *types.WXMiniAuthReq) (resp *types.WXMi
var userID int64 var userID int64
if userAuth != nil { if userAuth != nil {
// 已存在用户,直接登录 // 已存在用户,直接登录
user, err := l.svcCtx.UserModel.FindOne(l.ctx, userAuth.UserId) userID = userAuth.UserId
if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询用户信息失败: %v", err)
}
userID = user.Id
} else { } else {
// 注册临时用户 // 注册临时用户
userTemp, err := l.svcCtx.UserTempModel.FindOneByAuthTypeAuthKey(l.ctx, model.UserAuthTypeWxMiniOpenID, sessionKeyResp.Openid) userTemp, err := l.svcCtx.UserTempModel.FindOneByAuthTypeAuthKey(l.ctx, model.UserAuthTypeWxMiniOpenID, sessionKeyResp.Openid)