Can now pass settings to new Token.
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
const User = require('src/user/user');
|
const User = require("src/user/user");
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require("jsonwebtoken");
|
||||||
|
|
||||||
class Token {
|
class Token {
|
||||||
constructor(user, admin=false) {
|
constructor(user, admin = false, settings = null) {
|
||||||
this.user = user;
|
this.user = user;
|
||||||
this.admin = admin;
|
this.admin = admin;
|
||||||
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,14 +14,12 @@ class Token {
|
|||||||
* @returns {String}
|
* @returns {String}
|
||||||
*/
|
*/
|
||||||
toString(secret) {
|
toString(secret) {
|
||||||
const username = this.user.username;
|
const { user, admin, settings } = this;
|
||||||
const admin = this.admin;
|
|
||||||
let data = { username }
|
|
||||||
|
|
||||||
if (admin)
|
let data = { username: user.username, settings };
|
||||||
data = { ...data, admin }
|
if (admin) data["admin"] = admin;
|
||||||
|
|
||||||
return jwt.sign(data, secret, { expiresIn: '90d' });
|
return jwt.sign(data, secret, { expiresIn: "90d" });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,15 +29,12 @@ class Token {
|
|||||||
* @returns {Token}
|
* @returns {Token}
|
||||||
*/
|
*/
|
||||||
static fromString(jwtToken, secret) {
|
static fromString(jwtToken, secret) {
|
||||||
let username = null;
|
const token = jwt.verify(jwtToken, secret, { clockTolerance: 10000 });
|
||||||
|
if (token.username == null) throw new Error("Malformed token");
|
||||||
|
|
||||||
const token = jwt.verify(jwtToken, secret, { clockTolerance: 10000 })
|
const { username, admin, settings } = token;
|
||||||
if (token.username === undefined || token.username === null)
|
const user = new User(username);
|
||||||
throw new Error('Malformed token')
|
return new Token(user, admin, settings);
|
||||||
|
|
||||||
username = token.username
|
|
||||||
const user = new User(username)
|
|
||||||
return new Token(user)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user