1

Mon application utilise Firebase pour authentifier les utilisateurs par numéro de téléphone, une migration de Digits. J'ajoute l'idToken de Firebase à mes appels. J'écoute avec un intercepteur sur mon httpclient si un 401 a été parcouru, si c'est le cas, je me suis déconnecté.Attraper 401 et rafraîchir le jeton d'identification Firebase

J'ai remarqué qu'après une heure le 401 est entré, j'ai donc ajouté un addIdTokenListener dans ma classe App. Quand il change, je mets à jour mon jeton pour signer mes appels. Cela a fonctionné, mais pas sans faille, parfois un 401 a été jeté et je reste connecté l'utilisateur sur ...

Je suis en train d'écrire quelque chose dans mon intercepteur pour obtenir le IdToken de l'utilisateur, mais le firebaseUser.getIdToken d'appel() est asynchrone. Donc je commence à compliquer les choses, je suppose.

Quelqu'un pourrait-il me diriger dans la bonne direction? Quel est votre flux de travail?

Répondre

2

Vous allez dans la bonne direction. Une chose que vous voudrez peut-être faire est de modifier votre logique un peu en fonction de la raison de l'échec de validation de jeton d'identification. Vous pouvez vous-même unpack the ID token data et vérifier le champ d'expiration. Si le jeton a expiré, renvoyez un code différent qui déclenche le processus de récupération, avant de réessayer l'appel.