2
votes

Comment actualiser automatiquement Cognito Token dans une page

J'utilise le service AWS Cognito pour l'authentification. Dans mon application Angular 7, j'utilise Amplify Auth pour protéger mes pages.

Si l'utilisateur navigue entre différentes pages, Amplify gérera automatiquement l'actualisation du jeton et il ne verra pas les expirations de jeton.

Si l'utilisateur reste sur une page pendant une longue période, le jeton ne sera pas actualisé et l'utilisateur verra éventuellement le jeton expiré et obtiendra 403 pour l'appel de service Web.

Une bonne solution pour actualiser les jetons d'accès / d'identification si l'utilisateur reste sur la même page pendant longtemps?


0 commentaires

3 Réponses :


0
votes

Si vous appelez cognitoUser.getSession à partir du SDK Javascript Cognito, cela forcera les jetons locaux à être actualisés s'ils ne sont plus valides.

Je pense que vous avez quelques options ici:

1) Appelez cognitoUser.getSession avant d'effectuer chaque appel d'API. Il s'agit d'un appel asynchrone , alors assurez-vous d'avoir un résultat avant de poursuivre l'appel API. Si les jetons sont valides, cet appel sera très rapide et peu coûteux. Si vous avez besoin de nouveaux jetons, l'actualisation du jeton peut prendre une ou deux secondes.

2) Faites l'appel API, et si vous obtenez une réponse 403, appelez getSession , et une fois que vous avez obtenu un résultat, essayez à nouveau l'appel API. Ou si l'appel n'est pas si important, actualisez simplement le jeton, définissez une sorte de compteur d'erreur, et s'il échoue la prochaine fois, signalez-le à l'utilisateur à ce stade.


1 commentaires

Jusqu'à présent, je n'utilise que Auth. Pouvez-vous fournir un extrait complet de cette opération?