reset totp
This commit is contained in:
parent
48a8d1fb45
commit
fa1eb6a5f0
14 changed files with 354 additions and 83 deletions
|
@ -1,6 +1,11 @@
|
|||
import jwt from "jsonwebtoken";
|
||||
import { JWTData } from "../type/jwtTypes";
|
||||
import { JWTData, JWTToken } from "../type/jwtTypes";
|
||||
import { JWT_SECRET, JWT_EXPIRATION } from "../env.defaults";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
import RolePermissionService from "../service/rolePermissionService";
|
||||
import UserPermissionService from "../service/userPermissionService";
|
||||
import UserService from "../service/userService";
|
||||
import PermissionHelper from "./permissionHelper";
|
||||
|
||||
export abstract class JWTHelper {
|
||||
static validate(token: string): Promise<string | jwt.JwtPayload> {
|
||||
|
@ -38,4 +43,33 @@ export abstract class JWTHelper {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
static async buildToken(id: number): Promise<string> {
|
||||
let { firstname, lastname, mail, username, isOwner } = await UserService.getById(id);
|
||||
let userPermissions = await UserPermissionService.getByUser(id);
|
||||
let userPermissionStrings = userPermissions.map((e) => e.permission);
|
||||
let userRoles = await UserService.getAssignedRolesByUserId(id);
|
||||
let rolePermissions =
|
||||
userRoles.length != 0 ? await RolePermissionService.getByRoles(userRoles.map((e) => e.id)) : [];
|
||||
let rolePermissionStrings = rolePermissions.map((e) => e.permission);
|
||||
let permissionObject = PermissionHelper.convertToObject([...userPermissionStrings, ...rolePermissionStrings]);
|
||||
|
||||
let jwtData: JWTToken = {
|
||||
userId: id,
|
||||
mail: mail,
|
||||
username: username,
|
||||
firstname: firstname,
|
||||
lastname: lastname,
|
||||
isOwner: isOwner,
|
||||
permissions: permissionObject,
|
||||
};
|
||||
|
||||
return await JWTHelper.create(jwtData)
|
||||
.then((result) => {
|
||||
return result;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("Failed accessToken creation", err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue