后台登录取消谷歌验证,密码正确即登录
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ func AccLogin(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
accInfo, err := srv_mwacc.AccLogin(c, req.Acc, req.Pwd, req.Code)
|
accInfo, err := srv_mwacc.AccLogin(c, req.Acc, req.Pwd)
|
||||||
if err != nil || accInfo == nil {
|
if err != nil || accInfo == nil {
|
||||||
common.ServerJSON(c, err.Code, err.Msg)
|
common.ServerJSON(c, err.Code, err.Msg)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -9,11 +9,9 @@ import (
|
|||||||
"videoweb/pub/common/log"
|
"videoweb/pub/common/log"
|
||||||
"videoweb/pub/common/srvdef"
|
"videoweb/pub/common/srvdef"
|
||||||
"videoweb/pub/common/utils"
|
"videoweb/pub/common/utils"
|
||||||
"videoweb/pub/google"
|
|
||||||
"videoweb/pub/models/mwacc"
|
"videoweb/pub/models/mwacc"
|
||||||
"videoweb/web/webg"
|
"videoweb/web/webg"
|
||||||
|
|
||||||
"github.com/skip2/go-qrcode"
|
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -78,8 +76,8 @@ func isCustomerServiceRole(ctx context.Context, acc *mwacc.MwAcc) bool {
|
|||||||
return strings.Contains(roleName, "客服")
|
return strings.Contains(roleName, "客服")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 账号登录
|
// 账号登录(已取消谷歌验证,密码正确即登录)
|
||||||
func AccLogin(ctx context.Context, acc string, pwd string, code string) (*mwacc.MwAcc, *srvdef.SrvErr) {
|
func AccLogin(ctx context.Context, acc string, pwd string) (*mwacc.MwAcc, *srvdef.SrvErr) {
|
||||||
var data *mwacc.MwAcc
|
var data *mwacc.MwAcc
|
||||||
res, dataErr := mwacc.FindOneAccByFilter(ctx, bson.M{
|
res, dataErr := mwacc.FindOneAccByFilter(ctx, bson.M{
|
||||||
mwacc.FN.MwAcc.Acc: acc,
|
mwacc.FN.MwAcc.Acc: acc,
|
||||||
@@ -99,43 +97,18 @@ func AccLogin(ctx context.Context, acc string, pwd string, code string) (*mwacc.
|
|||||||
return data, srvdef.New(srvdef.AccountErrPasswordError, srvdef.AccountErrPasswordError.Msg(), "")
|
return data, srvdef.New(srvdef.AccountErrPasswordError, srvdef.AccountErrPasswordError.Msg(), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !res.IsBase32 {
|
|
||||||
// 谷歌绑定二维码
|
|
||||||
googleUrl := google.NewGoogleAuth().GetQrcode(acc, res.Base32)
|
|
||||||
qrCodePNG, _ := qrcode.Encode(googleUrl, qrcode.Medium, 256)
|
|
||||||
|
|
||||||
bq := &mwacc.MwAcc{}
|
|
||||||
bq.Qurl = qrCodePNG
|
|
||||||
data = bq
|
|
||||||
} else {
|
|
||||||
// hf屏蔽
|
|
||||||
if webg.Conf.RunMod == "prod" && (res.RoleId != 46761 && res.RoleId != 29601) {
|
|
||||||
if code == "" {
|
|
||||||
return data, srvdef.New(srvdef.ErrCaptcha, srvdef.ErrCaptcha.Msg(), "")
|
|
||||||
}
|
|
||||||
result, Verr := google.NewGoogleAuth().VerifyCode(res.Base32, code)
|
|
||||||
if Verr != nil || !result {
|
|
||||||
return data, srvdef.New(srvdef.ErrCaptchaInvalid, srvdef.ErrCaptchaInvalid.Msg(), "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 通过验证,再次验证密码是否正确
|
|
||||||
pwd := crypt.StrToMd5(pwd)
|
|
||||||
if res.Pwd != pwd {
|
|
||||||
return data, srvdef.New(srvdef.AccountErrPasswordError, srvdef.AccountErrPasswordError.Msg(), "")
|
|
||||||
}
|
|
||||||
getToken, err := generateToken(res.Id)
|
getToken, err := generateToken(res.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return data, srvdef.New(srvdef.GenerateTokenFailed, srvdef.GenerateTokenFailed.Msg(), "")
|
return data, srvdef.New(srvdef.GenerateTokenFailed, srvdef.GenerateTokenFailed.Msg(), "")
|
||||||
}
|
}
|
||||||
|
// 更新最近登录时间
|
||||||
_ = mwacc.UpOneAccByFilter(ctx, bson.M{
|
_ = mwacc.UpOneAccByFilter(ctx, bson.M{
|
||||||
mwacc.FN.MwAcc.Id: res.Id,
|
mwacc.FN.MwAcc.Id: res.Id,
|
||||||
}, bson.M{
|
}, bson.M{
|
||||||
mwacc.FN.MwAcc.LastTime: time.Now(),
|
mwacc.FN.MwAcc.LastTime: time.Now(),
|
||||||
})
|
})
|
||||||
// 更新最近登录时间
|
|
||||||
data = res
|
data = res
|
||||||
data.Token = getToken
|
data.Token = getToken
|
||||||
}
|
|
||||||
|
|
||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user