npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bondsports/cognito

v2.0.0

Published

This is template for Bond Sports typescript packages

Downloads

44

Readme

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.