@playerberry/token
Version:
JSON Web Token for PlayerBerry
36 lines (30 loc) • 851 B
JavaScript
;
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 };
}
}
};