예제 #1
0
        public JObject SendForgetpassOTP()
        {
            Logger.Debug("Calling SendForgetpassOTP");
            JObject request = HttpProxy.GetRequestBody <JObject>();

            if (request == null)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
            }

            Logger.Debug("Request body SendForgetpassOTP", request);
            UserModel requestUser       = GetUserDataFromRequest(request);
            var       recaptchaResponse = request[ModuleAppConsts.Field.GOOGLE_RECAPTCHA_RESPONSE_KEY].ToString();
            var       capchaChecked     = SessionProvider.GetValue <bool>(USER_REGISTRATION_CAPCHA_VALIDATION_SESSION_KEY);

            if (capchaChecked && !GoogleCaptchaHelper.ValidateResponse(Logger, recaptchaResponse, AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_RECAPTCHA_SECRECT_SETTING_KEY), AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_RECAPTCHA_VALIDATE_URL_SETTING_KEY)))
            {
                Logger.Info("Captcha validate fail SendForgetpassOTP");
                return(ResponseBuilder.CreateReponse(AppResponseCode._CAPTCHA_VALIDATION_FAIL));
            }
            else
            {
                SessionProvider.SetValue <bool>(USER_REGISTRATION_CAPCHA_VALIDATION_SESSION_KEY, true);
            }
            if (IsUserExists(requestUser.user_id))
            {
                string securityToken = CommonUtility.RandomString(10);
                if (requestUser.user_type == UserIDType.PhoneNumber.ToString() && OTPService.Send(requestUser.user_id, ModuleAppConsts.Field.FORGET_PASS_OTP_SMS_TEMPLATE, OTPType.Forgetpassword, securityToken))
                {
                    JObject dataResponse = new JObject();
                    dataResponse[CommonConst.CommonField.SECURITY_TOKEN] = securityToken;
                    SessionProvider.SetValue <UserModel>(CommonConst.CommonValue.SIGN_UP_SESSION_USER_KEY, requestUser);

                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, null, dataResponse));
                }
                else if (requestUser.user_type == UserIDType.Email.ToString() && OTPService.SendEmail(requestUser.user_id, ModuleAppConsts.Field.FORGET_PASS_OTP_EMAIL_TEMPLATE, AppSettingService.GetAppSettingData(ModuleAppConsts.Field.FORGET_PASS_OTP_EMAIL_SUBJECT), OTPType.Forgetpassword, securityToken))
                {
                    JObject dataResponse = new JObject();
                    dataResponse[CommonConst.CommonField.SECURITY_TOKEN] = securityToken;

                    SessionProvider.SetValue <UserModel>(CommonConst.CommonValue.SIGN_UP_SESSION_USER_KEY, requestUser);
                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, null, dataResponse));
                }
                else
                {
                    return(ResponseBuilder.CreateReponse(AppResponseCode._OTP_SEND_ERROR));
                }
            }
            else
            {
                return(ResponseBuilder.CreateReponse(AppResponseCode._USER_NOT_FOUND));
            }
        }
예제 #2
0
        public JObject Login()
        {
            Logger.Debug("Calling LoginController.Login");
            JObject request = HttpProxy.GetRequestBody <JObject>();

            if (request == null)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
            }

            var user_id           = request[CommonConst.CommonField.USER_ID].ToString();
            var password          = request[CommonConst.CommonField.PASSWORD].ToString();
            var recaptchaResponse = request[ModuleAppConsts.Field.GOOGLE_RECAPTCHA_RESPONSE_KEY].ToString();

            if (!GoogleCaptchaHelper.ValidateResponse(Logger, recaptchaResponse, AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_INVISIBLE_RECAPTCHA_SECRECT_SETTING_KEY), AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_RECAPTCHA_VALIDATE_URL_SETTING_KEY)))
            {
                Logger.Info("Captcha validate fail");
                return(ResponseBuilder.CreateReponse(AppResponseCode._CAPTCHA_VALIDATION_FAIL));
            }
            if (Validate(user_id, password))
            {
                JObject user = DBProxy.FirstOrDefault(CommonConst.Collection.USERS, CommonConst.CommonField.USER_ID, user_id);
                if (user == null)
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED, user));
                }
                else
                {
                    UserModel userModel = JObjectHelper.Deserialize <UserModel>(user);
                    SessionProvider.SetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY, userModel);
                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS));
                }
            }
            else
            {
                return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
            }
        }
예제 #3
0
        public JObject CreateUser()
        {
            Logger.Debug("Calling CreateUser");
            JObject request      = HttpProxy.GetRequestBody <JObject>();
            var     redirect_url = HttpProxy.GetQueryString(CommonConst.CommonField.REDIRECT_URL_KEY);

            if (request == null)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
            }
            var requestUser = GetUserDataFromRequest(request);

            if (IsOTPCheckEnable())
            {
                var signUpUser = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SIGN_UP_SESSION_USER_KEY);
                if (signUpUser == null)
                {
                    return(ResponseBuilder.CreateReponse(AppResponseCode._SESSION_USER_NOT_FOUND));
                }
                if (signUpUser.user_id != requestUser.user_id)
                {
                    return(ResponseBuilder.CreateReponse(AppResponseCode._SESSION_USER_DATA_MISMATCH));
                }
            }

            if (request[CommonConst.CommonField.PASSWORD].ToString() != request[CommonConst.CommonField.CONFIRM_PASSWORD].ToString())
            {
                return(ResponseBuilder.CreateReponse(AppResponseCode._SESSION_USER_DATA_MISMATCH));
            }

            var recaptchaResponse = request[ModuleAppConsts.Field.GOOGLE_RECAPTCHA_RESPONSE_KEY].ToString();
            var capchaChecked     = SessionProvider.GetValue <bool>(USER_REGISTRATION_CAPCHA_VALIDATION_SESSION_KEY);

            if (capchaChecked && !GoogleCaptchaHelper.ValidateResponse(Logger, recaptchaResponse, AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_RECAPTCHA_SECRECT_SETTING_KEY), AppSettingService.GetAppSettingData(ModuleAppConsts.Field.GOOGLE_RECAPTCHA_VALIDATE_URL_SETTING_KEY)))
            {
                Logger.Info("Captcha validate fail");
                return(ResponseBuilder.CreateReponse(AppResponseCode._CAPTCHA_VALIDATION_FAIL));
            }
            else
            {
                SessionProvider.SetValue <bool>(USER_REGISTRATION_CAPCHA_VALIDATION_SESSION_KEY, true);
            }
            if (!IsUserExists(requestUser.user_id))
            {
                if (CreateUser(requestUser, request[CommonConst.CommonField.PASSWORD].ToString()))
                {
                    var user = DBProxy.FirstOrDefault <UserModel>(CommonConst.Collection.USERS, CommonConst.CommonField.USER_ID, requestUser.user_id);
                    if (user == null)
                    {
                        Logger.Error(string.Format("User not found user_id : {0} ", requestUser.user_id));
                        return(ResponseBuilder.CreateReponse(AppResponseCode._USER_NOT_FOUND));
                    }
                    else
                    {
                        SessionProvider.SetValue(CommonConst.CommonValue.SESSION_USER_KEY, user);
                        var     rurl        = AppSettingService.GetAppSettingData(ModuleAppConsts.Field.SIGNUP_LENDING_PAGE_SETTING_KEY);
                        JObject resonseData = new JObject();
                        if (string.IsNullOrEmpty(redirect_url))
                        {
                            resonseData[CommonConst.CommonField.REDIRECT_URL_KEY] = rurl;
                        }
                        else
                        {
                            resonseData[CommonConst.CommonField.REDIRECT_URL_KEY] = string.Format("{0}?{1}={2}", rurl, CommonConst.CommonField.REDIRECT_URL_KEY, redirect_url);
                        }
                        return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, null, resonseData));
                    }
                }
                else
                {
                    Logger.Error("Error while addd new user");
                    return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
                }
            }
            else
            {
                Logger.Info(string.Format("User Exits with this phone number {0}", requestUser.user_id));
                return(ResponseBuilder.CreateReponse(AppResponseCode._USER_EXISTS));
            }
        }