diff --git a/src/libs/actions/Session/index.js b/src/libs/actions/Session/index.js index df811173e6b8..ba226d6d0808 100644 --- a/src/libs/actions/Session/index.js +++ b/src/libs/actions/Session/index.js @@ -335,6 +335,13 @@ function signIn(password, validateCode, twoFactorAuthCode, preferredLocale = CON isLoading: false, }, }, + { + onyxMethod: Onyx.METHOD.MERGE, + key: ONYXKEYS.CREDENTIALS, + value: { + validateCode, + }, + }, ]; const failureData = [ @@ -350,8 +357,8 @@ function signIn(password, validateCode, twoFactorAuthCode, preferredLocale = CON const params = {twoFactorAuthCode, email: credentials.login, preferredLocale}; // Conditionally pass a password or validateCode to command since we temporarily allow both flows - if (validateCode) { - params.validateCode = validateCode; + if (validateCode || twoFactorAuthCode) { + params.validateCode = validateCode || credentials.validateCode; } else { params.password = password; } diff --git a/src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.js b/src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.js index 7e3fe92c86c8..83b709ab55bf 100755 --- a/src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.js +++ b/src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.js @@ -161,24 +161,25 @@ class BaseValidateCodeForm extends React.Component { validateAndSubmitForm() { const requiresTwoFactorAuth = this.props.account.requiresTwoFactorAuth; - if (!this.state.validateCode.trim()) { - this.setState({formError: {validateCode: 'validateCodeForm.error.pleaseFillMagicCode'}}); - return; - } - - if (!ValidationUtils.isValidValidateCode(this.state.validateCode)) { - this.setState({formError: {validateCode: 'validateCodeForm.error.incorrectMagicCode'}}); - return; - } + if (requiresTwoFactorAuth) { + if (!this.state.twoFactorAuthCode.trim()) { + this.setState({formError: {twoFactorAuthCode: 'validateCodeForm.error.pleaseFillTwoFactorAuth'}}); + return; + } - if (requiresTwoFactorAuth && !this.state.twoFactorAuthCode.trim()) { - this.setState({formError: {twoFactorAuthCode: 'validateCodeForm.error.pleaseFillTwoFactorAuth'}}); - return; - } - - if (requiresTwoFactorAuth && !ValidationUtils.isValidTwoFactorCode(this.state.twoFactorAuthCode)) { - this.setState({formError: {twoFactorAuthCode: 'passwordForm.error.incorrect2fa'}}); - return; + if (!ValidationUtils.isValidTwoFactorCode(this.state.twoFactorAuthCode)) { + this.setState({formError: {twoFactorAuthCode: 'passwordForm.error.incorrect2fa'}}); + return; + } + } else { + if (!this.state.validateCode.trim()) { + this.setState({formError: {validateCode: 'validateCodeForm.error.pleaseFillMagicCode'}}); + return; + } + if (!ValidationUtils.isValidValidateCode(this.state.validateCode)) { + this.setState({formError: {validateCode: 'validateCodeForm.error.incorrectMagicCode'}}); + return; + } } this.setState({