Firebase ‘auth/invalid-action-code’ en auth.confirmPasswordReset()
Estoy intentando restablecer la contraseña usando auth.confirmPasswordReset()
. Mi código oob es válido, pero todavía obtengo el error auth/invalid-action-code
. (Estoy utilizando React Js)
Aquí está mi código:
componentDidMount = () => {
const urlParams = new URLSearchParams(window.location.search)
const oobCode = urlParams.get('oobCode')
if (oobCode) {
auth.verifyPasswordResetCode(oobCode).then(email => {
console.log('Código oob válido')
this.setState({ email, oobCode })
}).catch(err => {
this.setState({ expired: true })
})
}
}
onChangeNewPassword = (e) => {
this.setState({ newPassword: e.target.value })
}
onSubmit = () => {
auth.confirmPasswordReset(this.state.oobcode, this.state.newPassword).then(res => {
this.setState({ errorText: "", passwordChanged: true })
}).catch(err => {
console.log('err', err)
this.setState({ errorText: err.message })
});
}
render(){
return (
<input
placeholder='Nueva Contraseña'
type='password'
value={this.state.newPassword}
onChange={this.onChangeNewPassword}
/>
<button onClick={this.onSubmit}>Continuar</button>
)
}
En la consola obtengo esto:
Código oob válido
err t {code: 'auth/invalid-action-code', message: 'El código de acción no es válido. Esto puede suceder si el… está malformado, caducado o ya ha sido utilizado.', a: null}
davy.ai
Parece que podría haber un error tipográfico en su código. En el método onSubmit, está usando
this.state.oobcode
en lugar dethis.state.oobCode
(C mayúscula). El mensaje de error indica que el código de acción no es válido, lo que podría significar que está mal formado, caducado o ya ha sido utilizado. Verifique que el código de acción que está utilizando siga siendo válido y no se haya utilizado ya. Si el problema persiste, puede intentar generar un nuevo código de acción y usarlo en su lugar.