Token Store Reference

Implement and provide a custom TokenStore class for token get, set and clear operations.

Overview

By default PassageJS will store, lookup and clear auth tokens in localstorage and in a cookie using a consistent key value. By defining your own TokenStore as a config option for PassageJS you can:

  • Store and retrieve your tokens in the method best for your use case

  • Have PassageJS use a non-passage JWT (see Authorizers)

TokenStore Detail

All class methods should return a promise.

Required Methods

getAuthToken

import { TokenStore } from '@passageidentity/passage-js';

export class MyTokenStore extends TokenStore {
    getAuthToken() {
        const jwt = localStorage.getItem('passage_jwt')
        return Promise.resolve(JSON.parse(jwt));
    }
};

setTokens

import { TokenStore } from '@passageidentity/passage-js';

export class MyTokenStore extends TokenStore {
    setTokens(authResult){
        const passageToken = authResult.auth_token;
        const passageRefreshToken = authResult.refresh_token;
        localStorage.setItem('passage_jwt', passageToken);
        localStorage.setItem('passage_rt', passageRefreshToken);
        return Promise.resolve();
    }
};

Optional Methods

clearTokens

import { TokenStore } from '@passageidentity/passage-js';

export class MyTokenStore extends TokenStore {
    clearTokens(authResult){
        localStorage.removeItem('passage_jwt);
        localStorage.removeItem('passage_rt');
        return Promise.resolve();
    }
};

getRefreshToken

import { TokenStore } from '@passageidentity/passage-js';

export class MyTokenStore extends TokenStore {
    getRefreshToken(authResult){
        localStorage.getItem('passage_rt);
        return Promise.resolve();
    }
};

Last updated

Change request #337: react native