https://github.com/intersective/jwt-parser
Validates a JWT with a public key, parses the token and returns the contents.
https://github.com/intersective/jwt-parser
experiential-learning jwt practera
Last synced: 5 months ago
JSON representation
Validates a JWT with a public key, parses the token and returns the contents.
- Host: GitHub
- URL: https://github.com/intersective/jwt-parser
- Owner: intersective
- Created: 2020-11-21T03:56:05.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2023-11-09T20:27:33.000Z (over 2 years ago)
- Last Synced: 2025-10-04T12:41:42.499Z (8 months ago)
- Topics: experiential-learning, jwt, practera
- Language: TypeScript
- Homepage: https://practera.com
- Size: 596 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# @practera/jwt-parser
Validates a JWT with a public key, parses the token and returns the contents.
## Install
```
$ npm install @practera/jwt-parser
```
## Usage
### Development Notes
1. `exp` object must present in JWT payload when `CHECK_JWT_EXPIRY` is enabled (by setting 'true' in string)
1. To find out JWT what content available in JWT payload, you can:
1. Use [jwt.io](https://jwt.io/)
1. in node environment run `JWT.verify(APIKEY, PUBLIC_KEY, ALGORITHM, CALLBACK);`
```js
const JWT = require('jsonwebtoken');
JWT.verify(
// SAMPLE APIKEY
'ewoJInR5cGUiOiAiSldUIiwKCSJhbGciOiAiUlMyNTYiCn0.' +
'ewogICJjb250ZW50cyI6ICJjb250ZW50cyBvZiB0aGUgSldUIgp9.' +
'jzou9_ga85x28objtX3poBGHOQ_KgIDFDmMw0NqLDjwbNHW-2bx8P' +
'apVlpoRk_l5J3sd7iiZRJDfXG1fl8UmMaMaMW7zaqu6SsneaedDIH' +
'EmaKIM032hj-egzfsQqy1l8hoHZbc5SM2NATNrfTjP0uAvOBAljkq' +
'v9-5N8B4k8urDCnqcKmgNbUWyumEe5_KpmQSv-Xw5Eu05ejCZR6Ir' +
'sb_ShjChdrQjX57DPeoD70k4Qy6FAsUszrfcqc81upmYSD7E2kbqv' +
'_wK2DIr3E4yBuJUBBCVUN2_Wy8KM-xhPMBx4TiKwdan7WIKxRzBF-' +
'PkblOnezUVSs-efqxHxuvXlg',
// SAMPLE public key
'-----BEGIN PUBLIC KEY-----\n' +
'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwCtQ1cAYp7tNiA0SojsVgiO9DwsLhs5Z\n' +
'OEkKa72RFPBUS7fDBA2cZqJha+7ZtDnQRThIaGHnXbZSABIffAB67+jBB1sg/ublYf4mvT8qXUj2\n' +
'MUs6ft7jBarIeXAo8xFC7Bdbj0GRGUsTD74ZT9R/XF3t1qYomqu9PCeRK3BwEykAVogFQ5z2D3Ki\n' +
'McKPw+YmdPpzoj643fK/UrWzAVwUPTWDeLvj3JIVrYKkkbiDO2oqZzVFuZ0qBbe+9aWQW4QqAavS\n' +
'AIxWszr9Wn0LontOwZ0oUBl7TiPvCb1mqMzsq4R8ghWVG/CxH4n/p2ktGwxvs+e6JGHCpCohq6SA\n' +
'CU7R9wIDAQAB\n' +
'-----END PUBLIC KEY-----',
{ algorithms: ['RS256'] },
(err, payload) => {
if (err) throw err;
console.log(payload); // result: { contents: 'contents of the JWT' }
}
);
```
### Parameters
`CHECK_JWT_EXPIRY` - will invalidate a JWT when the expiry timestamp (in seconds) isn't provided.
### How to use?
JavaScript:
```js
const jwtParse = require("@practera/jwt-parser");
jwtContents = jwtParse(
token, // the token to be verified and parsed
process.env, // environmental variables or another array of tokens that are accepted
service, // this will identify what public key to use to validate the token, the variable called ${service}_JWT will be used. The variable should contain a key called public and the public key as the value.
['RS256'], // list of algorithms that will be used to validate the token. Default: ['RS256']
);
```
TypeScript:
```js
import jwtParse from "@practera/jwt-parser";
jwtContents = jwtParse(
token, // the token to be verified and parsed
process.env, // environmental variables or another array of tokens that are accepted
service, // this will identify what public key to use to validate the token, the variable called ${service}_JWT will be used. The variable should contain a key called public and the public key as the value.
['RS256'], // list of algorithms that will be used to validate the token. Default: ['RS256']
);
```