0
我找到了一個關於如何使用verify Cognito access tokens with Python的示例。我如何對NodeJS執行相同的操作?有沒有SDK功能來做到這一點?如何驗證NodeJS上的AWS Cognito訪問令牌
到目前爲止,我有
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'
}
但在如何從COGNITO_JWT_SET
哦,我有這些,但我不知道如何使用它們?參見'jwt.verify'函數?如何使用這些驗證我的令牌? –
您是否檢查了我共享的示例鏈接? – Ashan
如何將密鑰轉換爲PEM? 「您可以手動下載一次,將密鑰轉換爲PEM並使用您的Lambda函數上傳它們」 –