Have ideas to improve npm?Join in the discussion! »

    uuid-token-generator

    1.0.0 • Public • Published

    UUID Token Generator

    NPM Version Build Status Coverage Status Dependency Status devDependency Status

    Provides a class that generates random tokens with custom size and base-encoding using the RFC 4122 v4 UUID algorithm. Generated tokens are strings that are guaranteed to always be the same length, depending on the bit-size specified for the token.

    Great for generating things like API keys and compact UIDs.


    WARNING


    This package is no longer being maintained because a better one exists—uid-generator—which is better for the following reasons:

    • It has more flexible token generation options
      • i.e. You can specify the length of the token that you'd like to generate
    • It has both a synchronous and asynchronous interface
    • It is less likely to produce colliding tokens
    • It's more performant

    Installation

    npm install uuid-token-generator --save

    Usage

    const TokenGenerator = require('uuid-token-generator');
     
    const tokgen = new TokenGenerator(); // Default is a 128-bit token encoded in base58
    tokgen.generate();
    // -> '4QhmRwHwwrgFqXULXNtx4d'
     
    const tokgen2 = new TokenGenerator(256, TokenGenerator.BASE62);
    tokgen2.generate();
    // -> 'x6GCX3aq9hIT8gjhvO96ObYj0W5HBVTsj64eqCuVc5X'

    API

    new TokenGenerator([bitSize][, baseEncoding]) ⇒ Object

    Creates a new TokenGenerator instance that generates bitSize-bit tokens encoded using the characters in baseEncoding.

    Param Default Type Description
    [bitSize] 128 number The size of the token to generate in bits. Must be a multiple of 128.
    [baseEncoding] TokenGenerator.BASE58 string One of the TokenGenerator.BASE## constants or a custom string of characters to use to encode the token.

    Example

    new TokenGenerator();
    new TokenGenerator(256);
    new TokenGenerator(TokenGenerator.BASE36);
    new TokenGenerator(512, TokenGenerator.BASE62);
    new TokenGenerator('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/'); // Custom encoding (base64)

    TokenGenerator.BASE16 : String

    0123456789abcdef

    TokenGenerator.BASE36 : String

    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

    TokenGenerator.BASE58 : String

    123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

    TokenGenerator.BASE62 : String

    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

    TokenGenerator.BASE66 : String

    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~

    (all ASCII characters that do not need to be encoded in a URI as specified by RFC 3986)

    TokenGenerator.BASE71 : String

    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'()*-._~

    (all ASCII characters that are not encoded by encodeURIComponent())


    tokgen.generate() ⇒ String

    Generates a random token.

    Returns: String - A random token that is always tokgen.tokenLength characters long.

    Example

    const tokgen = new TokenGenerator();
    tokgen.generate();
    // -> 'vf5NrETkUKCa6FhkyRSazD'

    (readonly) tokgen.bitSize : Number

    The size of the token that will be generated in bits (the bitSize value passed to the TokenGenerator constructor).

    Example

    new TokenGenerator().bitSize // -> 128
    new TokenGenerator(256).bitSize // -> 256

    (readonly) tokgen.baseEncoding : String

    The set of characters used to encode the token (the baseEncoding value passed to the TokenGenerator constructor).

    Example

    new TokenGenerator().baseEncoding // -> '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
    new TokenGenerator('abc').baseEncoding // -> 'abc'

    (readonly) tokgen.base : Number

    The base of the token that will be generated (which is the number of characters in the baseEncoding).

    Example

    new TokenGenerator().base // -> 58
    new TokenGenerator(TokenGenerator.BASE62).base // -> 62
    new TokenGenerator('abc').base // -> 3

    (readonly) tokgen.tokenLength : Number

    The length of the token that will be generated. The generated token will always be this length.
    Calculated as such: tokenLength = Math.ceil(bitSize / Math.log2(base))

    Example

    new TokenGenerator().tokenLength // -> 22
    new TokenGenerator(256, TokenGenerator.BASE62).tokenLength // -> 43

    Install

    npm i uuid-token-generator

    DownloadsWeekly Downloads

    3,620

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar