A simple library to resolve JWT tokens.
It uses AWS KMS to decrypt the client secret and then calls the specified token endpoint the retrieve JWT.
Install the library.
yarn add @alphatango/token-provider
import axios from 'axios';
import TokenProvider from '@alphatango/token-provider';
const configuration = {
clientId: 'CLIENT_ID',
encryptedClientSecret: 'BASE64_KMS_ENCRYPTED_CLIENT_SECRET',
audience: 'https://example.com/',
tokenEndpoint: 'https://example.com/oauth/token'
};
let kmsClient = new aws.KMS({ region: 'eu-west-1' });
let tokenProvider = new TokenProvider({
httpClient: axios.create(),
kmsClient: kmsClient,
tokenConfiguration: configuration
});
// recommended way to retrieve token (utilizes caching and takes care of token expiration)
let accessToken = await tokenProvider.getToken();
// or bypass caching and get new token
accessToken = await tokenProvider.getTokenWithoutCache();
We value your input as part of direct feedback to us, by filing issues, or preferably by directly contributing improvements:
- Fork this repository
- Create a branch
- Contribute
- Pull request