当天登录次数限制

2019-11-01  本文已影响0人  funcx
// 登陆前现校验
// 账号是否被限制登录
func limited(uid string) error {
    conn := conf.RedisPool.Get()
    defer conn.Close()
    limit, err := redis.Int(conn.Do("GET", uid))
    if err != nil {
        if err == redis.ErrNil {
            return nil
        }
        return err
    }
    if limit >= 3 {
        return errors.New("密码错误次数达到上线")
    }
    return err
}

func limitInc(uid string) error {
    conn := conf.RedisPool.Get()
    defer conn.Close()
    ok, err := redis.Bool(conn.Do("INCR", uid))
    if ok {
        t, _ := time.ParseInLocation("20060102", time.Now().Format("20060102"), time.Local)
        _, err = conn.Do("EXPIRE", uid, int64(t.AddDate(0, 0, 1).Add(-1).Sub(time.Now()))/1000000000)
    }
    return err
}
上一篇 下一篇

猜你喜欢

热点阅读