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);
Validating a Token
Check if a token is valid:
const isValid = tokenManager.isValid(token);
console.log(isValid);
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));
}, 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.