2.0.8 • Published 5 years ago

@coolgk/token v2.0.8

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

@coolgk/token

a javascript / typescript module

npm install @coolgk/token

an expirable, revocable, renewable token with data storage

Report bugs here: https://github.com/coolgk/node-utils/issues

Examples

import { Token } from '@coolgk/token';
import { createClient } from 'redis';
// OR
// const { Token } = require('@coolgk/token');
// const createClient = require('redis').createClient;

(async () => {

    const redisClient = createClient({
        host: 'localhost',
        port: 6379,
        password: '----'
    });

    const token = new Token({
        redisClient: redisClient,
        expiry: 5,
        token: 'abcde'
    });

    console.log(
        await token.verify()
    ) // false

    await token.renew();

    console.log(
        await token.verify()
    ) // true

    console.log(
        await token.get('var1');
    ); // null

    console.log(
        await token.getAll()
    ); // {}

    await token.set('var1', {a: 'var1', b: false});

    console.log(
        await token.get('var1');
    ); // {a: 'var1', b: false}

    await token.set('var2', 'string var 2');

    console.log(
        await token.getAll()
    ); // { var1: { a: 'var1', b: false }, var2: 'string var 2' }

    await token.delete('var2');

    console.log(
        await token.get('var2');
    ); // null

    console.log(
        await token.getAll()
    ); // { var1: { a: 'var1', b: false } }

    await token.destroy();

    console.log(
        await token.verify()
    ) // false

    console.log(
        await token.get('var1');
    ); // null

    console.log(
        await token.getAll()
    ); // {}

    redisClient.quit();
})()

Classes

Constants

Token

Kind: global class

new Token(options)

ParamTypeDefaultDescription
optionsobject
options.tokenstringtoken string for creating a token object
options.redisClientobjectredis client from redis.createClient()
options.prefixstring"'token'"prefix used in redis e.g. token:TOKEN_STRING...
options.expirynumber0in seconds. 0 = never expire

token.renew(expiry) ⇒ promise

Kind: instance method of Token

ParamTypeDescription
expirynumberin seconds

token.set(name, value) ⇒ promise

set a data field value

Kind: instance method of Token

ParamTypeDescription
namestringfield name
value*anything can be JSON.stringify'ed

token.verify() ⇒ promise.<boolean>

verify if token has expired

Kind: instance method of Token

token.get(name) ⇒ promise

get the value of a data field

Kind: instance method of Token

ParamTypeDescription
namestringdata field name

token.destroy() ⇒ promise

delete the token

Kind: instance method of Token

token.delete(name) ⇒ promise

delete a data field in the token

Kind: instance method of Token

ParamTypeDescription
namestringdata field name

token.getAll() ⇒ promise.<{}>

get the values of all data fields in the token

Kind: instance method of Token

token.setToken(token)

set a new token string

Kind: instance method of Token

ParamTypeDescription
tokenstringnew token string

TokenError : object

Error Codes

Kind: global constant
Properties

NameTypeDescription
INVALID_TOKENstringinvalid token string
RESERVED_NAMEstringreserved names are used when setting token variables e.g. _timestamp
EXPIRED_TOKENstringtoken expired or renew() has not been called
2.0.8

5 years ago

2.0.7

6 years ago

2.0.6

6 years ago

2.0.5

6 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago