Пример #1
0
        public ResponseViewModel <VerifyTokenView> VerifyPhoneCode([FromBody] RequestViewModel obj)
        {
            ResponseViewModel <VerifyTokenView> response = null;
            VerifyTokenView result = new VerifyTokenView();

            obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content);
            bool isLog   = _token.VerifyToken(obj.HendInfo.UserOpenId, obj.HendInfo.SessionToken);
            var  sysCode = SysCode.Ok;

            if (isLog)
            {
                string code       = (string)obj.Data.verifyCode;
                string verifyCode = _sys.Md5Encode(code);
                string key        = CacheKey.UnbindPhone.ToString();
                string strLog     = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three);
                var    userLog    = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strLog);
                key = $"{key}{userLog.Phone}";
                if (RedisHelper.KeyExists(key, RedisFolderEnum.code, RedisEnum.Four))
                {
                    if (RedisHelper.StringGet(key, RedisFolderEnum.code, RedisEnum.Four).Equals(code))
                    {
                        RedisHelper.KeyDelete(key, RedisFolderEnum.code, RedisEnum.Four);
                        /*缓存验证码*/
                        key = $"{CacheKey.UnbindPhoneAingle}{userLog.Phone}";
                        result.VerifyToken = verifyCode;
                        RedisHelper.StringSet(key, verifyCode, 10, RedisFolderEnum.code, RedisEnum.Four);
                    }
                    else
                    {
                        /*验证码错误*/
                        sysCode = SysCode.CodeErr;
                    }
                }
                else
                {
                    /*未找到验证码*/
                    sysCode = SysCode.CodeErr;
                }
            }
            else
            {
                /*短令牌失效*/
                sysCode = SysCode.SessionTokenLose;
            }
            response = new ResponseViewModel <VerifyTokenView>(sysCode, sysCode == SysCode.Ok ? result : null, obj.Encrypt, _sys, obj.Secret);
            return(null);
        }
Пример #2
0
        public async Task <ResponseViewModel <VerifyTokenView> > StraitSendCode([FromBody] RequestViewModel obj)
        {
            obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content);
            ResponseViewModel <VerifyTokenView> response = null;
            VerifyTokenView result  = new VerifyTokenView();
            var             sysCode = SysCode.Ok;
            string          key     = string.Empty;
            string          code    = string.Empty;
            bool            isExist = await _user.PhoneExistAsync((string)obj.Data.phone);

            switch ((string)obj.Data.type)
            {
            case "1":
                key = CacheKey.Rgister.ToString();
                if (isExist)
                {
                    /*手机号码已经注册*/
                    sysCode = SysCode.PhoneExist;
                }
                break;

            case "2":
                key = CacheKey.LogIn.ToString();
                if (!isExist)
                {
                    /*未注册*/
                    sysCode = SysCode.PhoneNonentity;
                }
                break;

            case "3":
                key = CacheKey.SeekPwd.ToString();
                if (!isExist)
                {
                    /*未注册*/
                    sysCode = SysCode.PhoneNonentity;
                }
                break;

            case "4":
                key = CacheKey.UnbindPhone.ToString();
                break;

            case "5":
                key = CacheKey.BindPhone.ToString();
                if (isExist)
                {
                    /*手机号码已经注册*/
                    sysCode = SysCode.PhoneExist;
                }
                break;

            case "6":
                key = CacheKey.UpdatePwd.ToString();
                if (!isExist)
                {
                    /*未注册*/
                    sysCode = SysCode.PhoneNonentity;
                }
                break;

            default:
                break;
            }
            key = $"{key}{(string)obj.Data.phone}";
            #region
            code = "123456"; //_sys.getrandomseed(4).tostring();
            if (sysCode == SysCode.Ok)
            {
                if (RedisHelper.KeyExists(key, RedisFolderEnum.code, RedisEnum.Four)) //是否存在
                {
                    /*重复获取*/
                    sysCode = SysCode.RepeatedGetCode;
                }
                if (sysCode == SysCode.Ok)
                {
                    //!_mag.messagecode((string)obj.data.phone, code, stringextension.toint((string)obj.data.sendtype))
                    if (false)
                    {
                        /*获取验证码失败*/
                        sysCode = SysCode.GetCodeErr;
                    }
                    else
                    {
                        RedisHelper.StringSet(key, code, 10, RedisFolderEnum.code, RedisEnum.Four);
                    }
                }
            }
            #endregion
            //code = _sys.GetRandomSeed(4).ToString();
            //if (sysCode == SysCode.Ok)
            //{
            //    if (RedisHelper.KeyExists(key, RedisFolderEnum.code, RedisEnum.Four)) //是否存在
            //    {
            //        /*重复获取*/
            //        sysCode = SysCode.RepeatedGetCode;
            //    }
            //    if (sysCode == SysCode.Ok)
            //    {
            //        if (!_mag.StraitMessageCode((string)obj.Data.phone, code, StringExtension.ToInt((string)obj.Data.sendType)))
            //        {
            //            /*获取验证码失败*/
            //            sysCode = SysCode.GetCodeErr;
            //        }
            //        else
            //        {
            //            RedisHelper.StringSet(key, code, 10, RedisFolderEnum.code, RedisEnum.Four);
            //        }
            //    }
            //}
            response = new ResponseViewModel <VerifyTokenView>(sysCode, null, obj.Encrypt, _sys, obj.Secret);
            return(response);
        }