예제 #1
0
        public HttpResponseMessage TwoStepVerification([FromBody] JObject json)
        {
            var data          = new Dictionary <string, object>();
            var check         = json.GetValue("CHECK").ToString();
            var code          = json.GetValue("CODE").ToString().ToNumber <int>();
            var redisKey      = $"ConfirmCode:{AccessToken}";
            var codeFromRedis = TokenManager.GetConfirmCode(redisKey);

            if (check.ToNumber <int>() == 1 && (codeFromRedis.ToNumber <int>() != code || codeFromRedis.ToNumber <int>() == 0))
            {
                ThrowError(-102);
            }

            DataProviderManager <PKG_USERS> .Provider.TwoStepVerification(AuthUser.ID, AuthUser.SubUserID, check, out int count, out int turnOnOff);

            if (turnOnOff == 0)
            {
                ThrowError(-2);
            }
            TokenManager.DeleteConfirmCode(redisKey);
            AuthUser.MobileVerification = (turnOnOff == 2 || turnOnOff == 0) ? 0 : 1;
            TokenManager.UpdateAuthUser(AccessToken, AuthUser);
            data.Add("DATA_COUNT", count);
            data.Add("STATUS", turnOnOff);
            return(Success(data));
        }
예제 #2
0
        public HttpResponseMessage ConfirmEmailCode([FromBody] JObject json)
        {
            var data  = new Dictionary <string, object>();
            var email = json.GetValue("EMAIL").ToString();
            var code  = json.GetValue("CODE").ToString();

            if (string.IsNullOrEmpty(email) && !CommonFunctions.ValidateEmail(email))
            {
                ThrowError(-10);
            }
            var redisKey      = $"ConfirmCode:{AccessToken}";
            var codeFromRedis = TokenManager.GetConfirmCode(redisKey);

            if (string.IsNullOrEmpty(codeFromRedis))
            {
                ThrowError(-108);
            }
            if (codeFromRedis == code)
            {
                DataProviderManager <PKG_USER_PARAMETERS> .Provider.UpdateUserEmail(AuthUser.ID, AuthUser.SubUserID, email);

                var status = DataProviderManager <PKG_USERS> .Provider.NotificationAboutChange(AuthUser.Phone, null, AuthUser.Email, "ელ-ფოსტა");

                AuthUser.Email = email;
                TokenManager.UpdateAuthUser(AccessToken, AuthUser);
                TokenManager.DeleteConfirmCode(redisKey);
            }
            else
            {
                ThrowError(-102);
            }
            return(Success(data));
        }
예제 #3
0
        public HttpResponseMessage ConfirmCode([FromBody] JObject json)
        {
            var data   = new Dictionary <string, object>();
            var code   = json.GetValue("CODE").ToString();
            var number = json.GetValue("PHONE").ToString();

            if (string.IsNullOrEmpty(code) || string.IsNullOrEmpty(number))
            {
                ThrowError(-9);
            }

            var redisKey      = $"ConfirmCode:{AccessToken}";
            var codeFromRedis = TokenManager.GetConfirmCode(redisKey);

            if (string.IsNullOrEmpty(codeFromRedis))
            {
                ThrowError(-108);
            }

            if (codeFromRedis == code)
            {
                var oldNumber = AuthUser.Phone;
                DataProviderManager <PKG_USER_PARAMETERS> .Provider.UpdateUserPhone(AuthUser.ID, AuthUser.SubUserID, number);

                AuthUser.Phone = number;
                TokenManager.UpdateAuthUser(AccessToken, AuthUser);
                data.Add("PHONE", number);
                var status = DataProviderManager <PKG_USERS> .Provider.NotificationAboutChange(oldNumber, number, AuthUser.Email, "ტელეფონის ნომერი");

                data.Add("STATUS", status);
                TokenManager.DeleteConfirmCode(redisKey);
                return(Success(data));
            }
            else
            {
                ThrowError(-102);
            }
            return(Success(data));
        }