GOOGLE ADS

mardi 3 mai 2022

Comment vérifier le jeton d'accès AWS Cognito sur NodeJS

J'ai trouvé un exemple sur la façon de vérifier les jetons d'accès Cognito avec Python. Comment puis-je faire la même chose avec NodeJS ? N'y a-t-il pas de fonction SDK pour faire cela?

Jusqu'ici j'ai

authorizeCognitoJwt(token) {
const COGNITO_POOL_ID = 'ap-southeast-1_xxx'
const COGNITO_JWT_SET = {
'keys': [
{
'alg': 'RS256',
'e': 'AQAB',
'kid': 'ChkV+...=',
'kty': 'RSA',
'n': 'tkjexS...johc5Q',
'use': 'sig'
},
{
'alg': 'RS256',
'e': 'AQAB',
'kid': 'Ve...Eb8dw6Y=',
'kty': 'RSA',
'n': 'hW19H...0c9Q',
'use': 'sig'
}
]
}
const decodedJwt = jwt.decode(token, {complete: true})
console.log(decodedJwt)
if (decodedJwt.payload.iss!== `https://cognito-idp.us-east-1.amazonaws.com/${COGNITO_POOL_ID}`) {
return 'INVALID_ISSUER'
}
if (decodedJwt.payload.token_use!== 'access') {
return 'INVALID_TOKEN_USE'
}
var jwtKey = COGNITO_JWT_SET.keys.find(k => k.kid === decodedJwt.header.kid)
if (!jwtKey) {
return 'INVALID_TOKEN_KID'
}
var verifiedKey = jwt.verify(token, /* how do I get the key? */)
return 'VALID'
}

Mais je suis bloqué sur la façon d'obtenir les clés deCOGNITO_JWT_SET


Solution du problème

Vous pouvez obtenir le COGNITO_JWT_SETen utilisant cette URL.

Reportez-vous au billet de blog Integrating Amazon Cognito User Pools with API Gateway in AWS Mobile Blog pour un exemple complet avec code.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...