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.
- Validate tokens for specific claims (operator, administrator, owner)
- Extract roles from tokens
- Custom error classes for detailed error handling
- Logging with AWS Lambda Powertools
To install the library, use npm:
npm install secure-cat
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);
});
-
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.
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.
Secure Cat uses AWS Lambda Powertools for logging. Ensure you have the @aws-lambda-powertools/logger
package installed and configured in your Lambda environment.