uodate login api

v3
veypi 3 weeks ago
parent 917db899b6
commit 89e7caa7b0

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

Loading…
Cancel
Save