1.0.1 • Published 1 year ago

als-token-manager v1.0.1

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

als-Token-Manager

Overview

The TokenManager is a Node.js utility for managing time-limited tokens, which can be used for session management or generating unique identifiers for specific tasks. It allows developers to generate tokens that expire after a specified duration and ensures that tokens are consistently manageable even across server restarts by saving the state to a file.

Installation

Install via npm:

npm install als-token-manager

Usage

Initialization

Create a new instance of the TokenManager by specifying optional parameters for maximum age, custom logger function, and path to save the token start time.

const TokenManager = require('als-token-manager');
const tokenManager = new TokenManager(maxAge, logger, filePath);
  • maxAge: Duration in milliseconds before a token expires. Default is 604800000 (7 days).
    • must be a positive number representing the token's maximum lifespan in milliseconds. If an invalid value is provided, an error is thrown.
  • logger: Custom logger function for error logging. Default is console.log.
    • should be a function that will handle logging. If a non-function value is provided, an error is thrown.
  • filePath: Path to save the initial start time of tokens. Default is './start'.
    • is expected to be a string indicating where to save the token's start time. If a non-string value is provided, an error is thrown.

Generating a Token

To generate a new token:

const token = tokenManager.generateToken();
console.log(token); // Outputs the generated token

Validating a Token

Check if a token is valid:

const isValid = tokenManager.isValid(token);
console.log(isValid); // Outputs `true` if valid, otherwise `false`

Example

Here is a simple example to illustrate the creation and validation of a token:

const manager = new TokenManager(300000, console.error, './tokenStart');
const token = manager.generateToken();
console.log('Token:', token);
setTimeout(() => {
  console.log('Is valid:', manager.isValid(token)); // Should output `true` if not expired
}, 1000);

Advanced Configuration

  • Handle token persistence and recovery by using the filePath parameter to specify where the start time should be saved.
  • Customize logging for error tracking by passing a custom function to the logger parameter.