UNPKG

@playerberry/token

Version:

JSON Web Token for PlayerBerry

36 lines (30 loc) 851 B
'use strict'; const jwt = require('jsonwebtoken'); module.exports = class Token { constructor() { throw new Error(`The ${this.constructor.name} class may not be instantiated.`); } static create(payload, secret, expiresIn = '1d') { const token = jwt.sign(payload, secret, { expiresIn, }); return token; } static decode(token, secret) { try { const payload = jwt.decode(token, secret); if (payload) return { status: true, payload }; return { status: false, reason: 'Invalid Token!' }; } catch (error) { return { status: false, reason: error.message }; } } static verify(token, secret) { try { const payload = jwt.verify(token, secret); return { status: true, payload }; } catch (error) { return { status: false, reason: error.message }; } } };