web-dev-qa-db-fra.com

Comment gérer l'expiration du jeton sur Cognito

Je développe une application qui utilise AWS Cognito en tant que fournisseur d'identité. Ainsi, l'utilisateur s'authentifie sur AWS Cognito Pool et obtient le jeton d'accès, l'ID d'accès et le jeton d'actualisation. Ensuite, l'utilisateur peut faire des requêtes backend à mon application. Je reçois le jeton d'accès pour le valider, obtenir le profil d'utilisateur sur AWS Cognito et autoriser la demande.

Le problème est qu’après l’expiration du jeton d’accès et que le client envoie le jeton expiré au backend, l’application backend reçoit une erreur (jeton expérimenté ou non autorisé).

Comment puis-je faire fonctionner ce workflow?

Je pensais envoyer au client un message indiquant que le jeton a expiré et que le client l'actualise par rapport au pool Cognito. Est-ce la bonne approche?

8
p.magalhaes

Lorsque vous obtenez le jeton d'accès, l'ID et le jeton d'actualisation des pools d'utilisateurs Cognito, vous devez le mettre en cache localement. Les jetons Access et ID sont valides pour une heure et doivent être réutilisés autant que possible au cours de cette période.

Ces jetons sont des jetons JWT et contiennent la date d'expiration en eux-mêmes. Vous pouvez décoder le jeton JWT et également mettre en cache cette expiration avec le jeton. À chaque fois que vous accédez au cache pour les jetons, vérifiez également l'heure actuelle par rapport à l'heure d'expiration mise en cache. Si expiré, utilisez le jeton Refresh pour obtenir le dernier jeton Access et ID, puis mettez en cache les jetons et l'expiration à nouveau.

Si vous utilisez l'un de nos SDK de haut niveau pour Android , iOS de JavaScript , le SDK gère tout cela pour vous.

12
Chetan Mehta

vous pouvez trouver plus d'informations Comment les utiliser sur ce lien. http://docs.aws.Amazon.com/cognito/latest/developerguide/Amazon-cognito-user-pools-using-tokens-with-identity- providers.html

Pour utiliser le jeton d'actualisation afin d'obtenir de nouveaux jetons, utilisez l'API AdminInitiateAuth, en passant REFRESH_TOKEN_AUTH pour le paramètreAuthFlow et le jeton d'actualisation pour le paramètre AuthParameters avec la clé "REFRESH_TOKEN". Ceci initie le processus d'actualisation du jeton avec le serveur Amazon Cognito et renvoie nouvel identifiant et jetons d'accès.

En bref, appelez l'action AdminInitiateAuth avec le jeton d'actualisation. Jetez un coup d’œil au SDK de votre langue de développement que vous préférez.

2
Rob Van Pamel

Vous devez développer un autorisateur personnalisé pour les groupes d'utilisateurs Amazon Cognito. Cela vérifierait chaque passerelle api. Vous pouvez trouver plus d'informations ici.

Intégration des groupes d'utilisateurs Amazon Cognito à API Gateway

0