2.0.0 • Published 1 year ago

@bondsports/cognito v2.0.0

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

AWS Cognito Token Verifier

The AWS Cognito Token Verifier is a TypeScript package designed to facilitate the verification of Amazon Cognito user tokens. It provides a simple and efficient way to validate Cognito tokens in your applications.

Installation

npm install @bondsports/cognito

Usage

import { CognitoTokenVerifier } from '@bondsports/cognito';

// Initialize the CognitoTokenVerifier with your AWS region
const tokenVerifier = new CognitoTokenVerifier('your-aws-region');

// Use the `verifyToken` method to verify Cognito tokens
const result = await tokenVerifier.verifyToken((name) => /* Function to get token value from header by the header name */);

console.log('User Email:', result.email);

Features

  • Token Verification: Verify Cognito tokens by providing the necessary headers.
  • Logging: Integrated logging for debugging purposes.
  • JWKs Caching: Efficiently caches JSON Web Keys (JWKs) to reduce the number of HTTP requests.

Example

try {
const result = await tokenVerifier.verifyToken((name) => /* Function to get token header by name */);
console.log('User Email:', result.email);
} catch (error) {
console.error('Token verification failed:', error.message);
}

Configuration

Required claims

The CognitoTokenVerifier allows you to pass a custom JWT token claims required to be present in the token while verifying:

import { CognitoTokenVerifier } from '@bondsports/cognito';

const requiredClaims = ['myCustomClaim', 'anotherClaimHasToBePresent'];
const tokenVerifier = new CognitoTokenVerifier('your-aws-region', requiredClaims);

there is also a static method returning default required claims, which you may use to extend the list:

import { CognitoTokenVerifier } from '@bondsports/cognito';

const defaultRequiredClaims = CognitoTokenVerifier.getDefaultRequiredClaims();
const requiredClaims = [...defaultRequiredClaims, 'myCustomClaim', 'anotherClaimHasToBePresent'];
const tokenVerifier = new CognitoTokenVerifier('your-aws-region', requiredClaims);

Logger

The CognitoTokenVerifier allows you to pass a custom logger during initialization:

import { CognitoTokenVerifier } from '@bondsports/cognito';
import jsLogger, { Logger } from '@bondsports/js-logger';

const customLogger: Logger = /* Your custom logger instance */;
const requiredClaims = CognitoTokenVerifier.getDefaultRequiredClaims();
const tokenVerifier = new CognitoTokenVerifier('your-aws-region', requiredClaims, customLogger);

Log Level

Default log level is INFO. however, you can change it:

import { CognitoTokenVerifier } from '@bondsports/cognito';
import jsLogger, { Logger, LogLevel } from '@bondsports/js-logger';

const customLogger: Logger = jsLogger();
const requiredClaims = CognitoTokenVerifier.getDefaultRequiredClaims();
const tokenVerifier = new CognitoTokenVerifier('your-aws-region', requiredClaims, customLogger, LogLevel.DEBUG);

Dependencies

This package relies on the following external dependencies:

  • jose for JSON Web Token (JWT) processing.
  • @bondsports/js-logger for logging functionality.
2.0.0

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

2 years ago

1.0.0

2 years ago

0.1.6

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.5

2 years ago

0.1.2

2 years ago

0.0.1

2 years ago