|
@@ -250,13 +250,12 @@ func (this *UserLoginController) Login() {
|
|
|
|
|
|
// 入参
|
|
|
type UserLoginReq struct {
|
|
|
- LoginType int `description:"登录方式: 1-账号; 2-手机号; 3-邮箱"`
|
|
|
- AbnormalCheckType int `description:"异常登陆校验方式: 1-手机号; 2-邮箱"`
|
|
|
- Username string `description:"账号"`
|
|
|
- Password string `description:"密码"`
|
|
|
- Mobile string `description:"手机号"`
|
|
|
- Email string `description:"邮箱"`
|
|
|
- VerifyCode string `description:"验证码"`
|
|
|
+ LoginType int `description:"登录方式: 1-账号; 2-手机号; 3-邮箱"`
|
|
|
+ Username string `description:"账号"`
|
|
|
+ Password string `description:"密码"`
|
|
|
+ Mobile string `description:"手机号"`
|
|
|
+ Email string `description:"邮箱"`
|
|
|
+ VerifyCode string `description:"验证码"`
|
|
|
}
|
|
|
var req UserLoginReq
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
@@ -298,63 +297,14 @@ func (this *UserLoginController) Login() {
|
|
|
br.Msg = "请输入密码"
|
|
|
return
|
|
|
}
|
|
|
- // 判断账号是否为异常登录
|
|
|
+
|
|
|
+ // 判断账号是否为异常登录, 算作异常的话就需要换另外的方式去登录了
|
|
|
abnormalKey := fmt.Sprint(utils.CACHE_ABNORMAL_LOGIN, req.Username)
|
|
|
isAbnormal, _ := utils.Rc.RedisString(abnormalKey)
|
|
|
if isAbnormal != "" {
|
|
|
- if req.AbnormalCheckType != 1 && req.AbnormalCheckType != 2 {
|
|
|
- br.Ret = models.BaseRespCodeAbnormalLogin
|
|
|
- br.Msg = "账号异常, 请进行手机号/邮箱校验"
|
|
|
- br.ErrMsg = fmt.Sprintf("账号异常, 请进行手机号/邮箱校验, CheckType: %d", req.AbnormalCheckType)
|
|
|
- return
|
|
|
- }
|
|
|
- recordCond := ` AND source = ?`
|
|
|
- recordPars := make([]interface{}, 0)
|
|
|
- recordPars = append(recordPars, system.AdminVerifyCodeRecordSourceAbnormal)
|
|
|
- if req.AbnormalCheckType == 1 {
|
|
|
- if req.Mobile == "" {
|
|
|
- br.Msg = "请输入手机号"
|
|
|
- return
|
|
|
- }
|
|
|
- if !utils.ValidateMobileFormatat(req.Mobile) {
|
|
|
- br.Msg = "您的手机号输入有误, 请检查"
|
|
|
- return
|
|
|
- }
|
|
|
- recordCond += ` AND mobile = ?`
|
|
|
- recordPars = append(recordPars, req.Mobile)
|
|
|
- }
|
|
|
- if req.AbnormalCheckType == 2 {
|
|
|
- if req.Email == "" {
|
|
|
- br.Msg = "请输入邮箱"
|
|
|
- return
|
|
|
- }
|
|
|
- if !utils.ValidateEmailFormatat(req.Email) {
|
|
|
- br.Msg = "您的邮箱输入有误, 请检查"
|
|
|
- return
|
|
|
- }
|
|
|
- recordCond += ` AND email = ?`
|
|
|
- recordPars = append(recordPars, req.Email)
|
|
|
- }
|
|
|
- if req.VerifyCode == "" {
|
|
|
- br.Msg = "请输入验证码"
|
|
|
- return
|
|
|
- }
|
|
|
- expiredTime := time.Now().Add(utils.VerifyCodeExpireMinute * time.Minute).Format(utils.FormatDateTime)
|
|
|
- recordCond += ` AND code = ? AND expired_time <= ?`
|
|
|
- recordPars = append(recordPars, req.VerifyCode, expiredTime)
|
|
|
-
|
|
|
- // 校验验证码
|
|
|
- recordOb := new(system.AdminVerifyCodeRecord)
|
|
|
- _, e := recordOb.GetItemByCondition(recordCond, recordPars)
|
|
|
- if e != nil {
|
|
|
- if e.Error() == utils.ErrNoRow() {
|
|
|
- br.Msg = "验证码错误, 请重新输入"
|
|
|
- return
|
|
|
- }
|
|
|
- br.Msg = "验证码错误, 请重新输入"
|
|
|
- br.ErrMsg = "获取异常登陆验证码失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+ br.Ret = models.BaseRespCodeAbnormalLogin
|
|
|
+ br.Msg = "账号异常, 请进行手机号/邮箱校验"
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
// 账号密码校验
|
|
@@ -408,9 +358,6 @@ func (this *UserLoginController) Login() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 登录成功, 清除异常标记
|
|
|
- _ = utils.Rc.Delete(abnormalKey)
|
|
|
- _ = utils.Rc.Delete(errPassKey)
|
|
|
sysUser = accountUser
|
|
|
}
|
|
|
|
|
@@ -510,6 +457,12 @@ func (this *UserLoginController) Login() {
|
|
|
sysUser = emailUser
|
|
|
}
|
|
|
|
|
|
+ // 登录成功(无论哪种方式登录), 清除异常标记
|
|
|
+ abnormalCache := fmt.Sprint(utils.CACHE_ABNORMAL_LOGIN, sysUser.AdminName)
|
|
|
+ errPassCache := fmt.Sprint(utils.CACHE_LOGIN_ERR_PASS, sysUser.AdminName)
|
|
|
+ _ = utils.Rc.Delete(abnormalCache)
|
|
|
+ _ = utils.Rc.Delete(errPassCache)
|
|
|
+
|
|
|
account := utils.MD5(sysUser.AdminName)
|
|
|
token := utils.GenToken(account)
|
|
|
sysSession := new(system.SysSession)
|