uodate login api

v3
veypi 3 weeks ago
parent 917db899b6
commit 89e7caa7b0

@ -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")
}

Loading…
Cancel
Save