aws-cognito-jwt-verifier

AWS Cognito JWT Verifier is a Typescript library that will help to secure your application by checking if your JWT token is valid.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
aws-cognito-jwt-verifier
1.3.74 years ago4 years agoMinified + gzip package size for aws-cognito-jwt-verifier in KB

Readme

AWS Cognito JWT Verifier (TypeScript)
AWS Cognito JWT Verifier is a Typescript library that will help to secure your application by checking if your JWT token is valid.
This library will check if your cognito JWT Token is:
  • Invalid Token
  • Expired Token
  • Invalid Publickey

NOTE:

Supported :
  • NodeJS (TypeScript)
  • Angular (TypeScript)
  • TypeScript

Not Supported : These libraries below are not supported yet;

Installation

Use the NPM to install AWS Cognito JWT Verifier.
npm i aws-cognito-jwt-verifier --save

Required Parameters

  • Token - Your aws cognito generated token.
  • Region - Your aws region where you cognito user pool residing.
  • UserPoolID - Your aws cognito user pool id.

Usage

TypeScript Code
import {CognitoJwtVerifier} from 'aws-cognito-jwt-verifier';

const verify = new CognitoJwtVerifier();

async function verifyToken{
  return await verify.checkJwt('<cognitoJwtToken>', '<region>', '<userPool>');
}

verifyToken();

NodeJS
var awsCognitoVerifier = require("aws-cognito-jwt-verifier");
var verify = new awsCognitoVerifier.CognitoJwtVerifier();
var result = verify.checkJwt("<token>", "<region>", "<userPoolID>");

result
  .then((res) => {
    console.log(res); //json string result
  })
  .catch((err) => {
    console.log(err);
  });

Results

If the token is valid, this will be the return, it is a json string, so you need to parse the result from your end to make this data more readable and usable.
SUCCESS I am sure this is what you need?
{
  "status": true,
  "code": 200,
  "message": "Congrats! Your token is valid",
  "data": {
    "sub": "0f5c033b-bd32-44d2-a91a-b552ef17c3c2",
    "cognito:groups": ["Group1", "Group2"],
    "event_id": "e14169b1-284d-404f-8a95-717d9ae7d07e",
    "token_use": "access",
    "scope": "aws.cognito.signin.user.admin",
    "auth_time": 1587560894,
    "iss": "https://cognito-idp.ap-southeast-1.amazonaws.com/ap-southeast-xxx",
    "exp": 1587564494,
    "iat": 1587560894,
    "jti": "b7024e23-da89-4898-ba62-c6dd53b389bd",
    "client_id": "xxxxxx",
    "username": "0f5c033b-bd32-44d2-a91a-b552ef17c3c2"
  }
}

FAIL
{
  "status": false,
  "code": 401,
  "message": "TokenExpiredError"
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.

License

MIT