diff --git a/api/user/login.go b/api/user/login.go index 576dd6a..fb105e5 100644 --- a/api/user/login.go +++ b/api/user/login.go @@ -29,14 +29,14 @@ var _ = Router.Post("/login", "用户登录", userLogin) type loginOpts struct { - UserName string `json:"username" src:"json" desc:"用户名"` - Code string `json:"code" src:"json" desc:"密码/授权码"` + UserName *string `json:"username" src:"json" desc:"用户名"` + Code *string `json:"code" src:"json" desc:"密码/授权码"` - VerifyCode string `json:"verify_code" src:"json" desc:"验证码"` - Region string `json:"region" src:"json" desc:"区域"` - Phone string `json:"phone" src:"json" desc:"手机号"` + VerifyCode *string `json:"verify_code" src:"json" desc:"验证码"` + Region *string `json:"region" src:"json" desc:"区域"` + Phone *string `json:"phone" src:"json" desc:"手机号"` - Email string `json:"email" src:"json" desc:"邮箱"` + Email *string `json:"email" src:"json" desc:"邮箱"` Type *string `json:"type" src:"json" desc:"登录类型"` AppID *string `json:"app_id" src:"json" desc:"应用ID"` Device *string `json:"device" src:"json" desc:"设备信息"` @@ -53,25 +53,25 @@ func userLogin(x *vigo.X, opts *loginOpts) (string, error) { } switch typ { case "phone": - query = query.Where("phone = ?", opts.Region+opts.Phone) + query = query.Where("phone = ?", *opts.Region+*opts.Phone) case "email": - query = query.Where("email = ?", opts.Email) + query = query.Where("email = ?", *opts.Email) default: - query = query.Where("username = ?", opts.UserName) + query = query.Where("username = ?", *opts.UserName) } err := query.First(user).Error if err != nil { return "", vigo.ErrNotFound } logv.Info().Str("user", user.ID).Msg("login") - if opts.VerifyCode != "" { - err = sms.VerifyCode(opts.Phone, opts.VerifyCode, opts.Region, "signin") + if opts.VerifyCode != nil { + err = sms.VerifyCode(*opts.Phone, *opts.VerifyCode, *opts.Region, "signin") if err != nil { logv.Warn().Msgf("verify code: %v", err) return "", vigo.ErrNotAuthorized.WithError(err) } } else { - code, err := base64.URLEncoding.DecodeString(opts.Code) + code, err := base64.URLEncoding.DecodeString(*opts.Code) if err != nil { return "", vigo.ErrArgInvalid.WithArgs("code") }