0
votes

Comment stocker des tentatives de connexion infructueuses pour réagir avec Redux?

Une application réactive est créée avec la connexion avec Google Options utilisant FireBase. L'APP doit suivre le nombre de tentatives infructueuses de connexion à Redux et si l'utilisateur entre dans un mot de passe incorrect plus de deux fois, affichez le composant reCAPTCHA.

À l'heure actuelle, le composant RECAPTCHA charge chaque fois que la page est chargée. Il ne faut charger que lorsque l'utilisateur entre dans un mot de passe incorrect plus de 2 fois. P>

Page de connexion: P>

const initialState = {
  failedLoginAttempts: 0
};

export default (state = initialState, { type, payload }) => {
  switch (type) {
    case 'UPDATE_LOGIN_ATTEMPTS':
      return {
        ...state,
        failedLoginAttempts: //how to increment the count by 1??
      };
    default:
      return state;
  }
}


1 commentaires

Le code de réducteur ci-dessus fonctionne lorsque nous l'envoions lorsque le courrier électronique / mot de passe est faux. En cas de connexion avec Google où FireBaseUI Composant est utilisé, comment expédier?


3 Réponses :


0
votes

ÉLIMANDLOGINATRESSEMENTS: // Comment incrémenter le nombre de 1 ?? p>

Utilisez simplement la valeur actuelle de State.failedloginatemps code> et ajoutez 1: p> xxx pré>

Utiliser MapStatetoprops code> pour mapper ÉLIMANDLOGINATTECTS CODE> AS PROP. Ensuite, utilisez-le pour montrer le CAPTCHA. P>

mapStateToProps(state) {
  return {
    failedLoginAttempts: state.failedLoginAttempts,
  }
}

render () {
  if (props.failedLoginAttempts > 2) {
    // show captcha
    return <Captcha />;
  }
}


2 commentaires

Merci, ça a fonctionné. Comment charger le composant reCAPTCHA uniquement lors de la liaison échouée> 2?


@Sneh La mise à jour montre simplement la logique de base Comment afficher CAPTCHA lorsque ÉLACÉLOGINATRESSEMENTS> 2



0
votes

Vous pouvez le faire par incrément compter de la précédente:

const initialState = {
  failedLoginAttempts: 0
};

export default (state = initialState, { type, payload }) => {
  switch (type) {
    case 'UPDATE_LOGIN_ATTEMPTS':
      return {
        ...state,
        failedLoginAttempts: state.failedLoginAttempts+1 //Update attempt from last one
      };
    default:
      return state;
  }
}



0 commentaires

0
votes

Vous n'avez pas attaché le fichier action.js, mais à mon avis, la meilleure façon d'écouter quoi que ce soit échoué à Redux est {Catch} l'action -


xxx

puis dans le réducteur


xxx

0 commentaires