fix wx auth
This commit is contained in:
parent
84c9965d9a
commit
4c9bdb84f3
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user