secure-cat

1.0.0 • Public • Published

Secure Cat

Secure Cat is a JavaScript library for validating tokens and extracting roles from them. It is designed to be used in serverless environments, such as AWS Lambda, and provides robust error handling for various token-related scenarios.

Features

  • Validate tokens for specific claims (operator, administrator, owner)
  • Extract roles from tokens
  • Custom error classes for detailed error handling
  • Logging with AWS Lambda Powertools

Installation

To install the library, use npm:

npm install secure-cat

Usage

Here's an example of how to use the Secure Cat library:

import { Token } from 'secure-cat';

const token = new Token();

const event = {
  requestContext: {
    authorizer: {
      jwt: {
        claims: {
          operator: true,
          administratorId: 'admin123',
          userId: 'user456'
        }
      }
    }
  }
};

token.validateOperator(event)
  .then(isValid => {
    console.log('Operator is valid:', isValid);
  })
  .catch(error => {
    console.error('Error validating operator:', error);
  });

token.validateAdministrator(event)
  .then(adminId => {
    console.log('Administrator ID:', adminId);
  })
  .catch(error => {
    console.error('Error validating administrator:', error);
  });

token.validateOwner(event)
  .then(userId => {
    console.log('User ID:', userId);
  })
  .catch(error => {
    console.error('Error validating owner:', error);
  });

API

Token Class

Methods

  • validateOperator(event): Validates if the token contains the operator claim.
    • Parameters: event (Object) - The event object containing the token.
    • Returns: Promise that resolves to true if the operator claim is present, otherwise rejects with OperatorClaimMissingError.
  • validateAdministrator(event): Validates if the token contains the administrator claim.
    • Parameters: event (Object) - The event object containing the token.
    • Returns: Promise that resolves to the administrator ID if the claim is present, otherwise rejects with AdministratorClaimMissingError.
  • validateOwner(event): Validates if the token contains the owner claim.
    • Parameters: event (Object) - The event object containing the token.
    • Returns: Promise that resolves to the user ID if the claim is present, otherwise rejects with OwnerClaimMissingError.

Custom Errors

The library provides custom error classes for detailed error handling:

  • TokenMissingError: Thrown when the token is missing or not in the correct format.
  • OperatorClaimMissingError: Thrown when the operator claim is missing.
  • AdministratorClaimMissingError: Thrown when the administrator claim is missing.
  • OwnerClaimMissingError: Thrown when the owner claim is missing.

Logging

Secure Cat uses AWS Lambda Powertools for logging. Ensure you have the @aws-lambda-powertools/logger package installed and configured in your Lambda environment.

Readme

Keywords

none

Package Sidebar

Install

npm i secure-cat

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

85.1 kB

Total Files

20

Last publish

Collaborators

  • tkopacki