UNPKG

origintrail-node

Version:

OriginTrail Node - Decentralized Knowledge Graph Node Library

69 lines (57 loc) 1.4 kB
import 'dotenv/config'; import jwt from 'jsonwebtoken'; import { validate } from 'uuid'; class JwtUtil { constructor() { this._secret = process.env.JWT_SECRET; } /** * Generates new JWT token * @param uuid uuid from token table * @param expiresIn optional parameter. accepts values for ms package (https://www.npmjs.com/package/ms) * @returns {string|null} */ generateJWT(uuid, expiresIn = null) { if (!validate(uuid)) { return null; } const options = { jwtid: uuid, }; if (expiresIn) { options.expiresIn = expiresIn; } return jwt.sign({}, this._secret, options); } /** * Validates JWT token * @param {string} token * @returns {boolean} */ validateJWT(token) { try { jwt.verify(token, this._secret); } catch (e) { return false; } return true; } /** * Returns JWT payload * @param {string} token * @returns {*} */ getPayload(token) { return jwt.decode(token); } /** * Decodes token * @param token * @returns {{payload: any, signature: *, header: *}|*} */ decode(token) { return jwt.decode(token, { complete: true }); } } const jwtUtil = new JwtUtil(); export default jwtUtil;