api Controller & token
This commit is contained in:
parent
36ecccd0dc
commit
4568bef10e
8 changed files with 115 additions and 5 deletions
|
@ -6,6 +6,8 @@ import RolePermissionService from "../service/user/rolePermissionService";
|
|||
import UserPermissionService from "../service/user/userPermissionService";
|
||||
import UserService from "../service/user/userService";
|
||||
import PermissionHelper from "./permissionHelper";
|
||||
import ApiService from "../service/user/apiService";
|
||||
import ApiPermissionService from "../service/user/apiPermissionService";
|
||||
|
||||
export abstract class JWTHelper {
|
||||
static validate(token: string): Promise<string | jwt.JwtPayload> {
|
||||
|
@ -72,4 +74,29 @@ export abstract class JWTHelper {
|
|||
throw new InternalException("Failed accessToken creation", err);
|
||||
});
|
||||
}
|
||||
|
||||
static async buildApiToken(token: string): Promise<string> {
|
||||
let { id, title } = await ApiService.getByToken(token);
|
||||
let apiPermissions = await ApiPermissionService.getByApi(id);
|
||||
let apiPermissionStrings = apiPermissions.map((e) => e.permission);
|
||||
let permissionObject = PermissionHelper.convertToObject(apiPermissionStrings);
|
||||
|
||||
let jwtData: JWTToken = {
|
||||
userId: id,
|
||||
mail: "",
|
||||
username: title,
|
||||
firstname: "",
|
||||
lastname: "",
|
||||
isOwner: false,
|
||||
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