jwt gen & rename fixes
This commit is contained in:
parent
313785b4ac
commit
a165231c47
13 changed files with 101 additions and 41 deletions
|
@ -8,6 +8,7 @@ import UserService from "../service/user/userService";
|
|||
import PermissionHelper from "./permissionHelper";
|
||||
import WebapiService from "../service/user/webapiService";
|
||||
import WebapiPermissionService from "../service/user/webapiPermissionService";
|
||||
import ms from "ms";
|
||||
|
||||
export abstract class JWTHelper {
|
||||
static validate(token: string): Promise<string | jwt.JwtPayload> {
|
||||
|
@ -19,13 +20,16 @@ export abstract class JWTHelper {
|
|||
});
|
||||
}
|
||||
|
||||
static create(data: JWTData): Promise<string> {
|
||||
static create(
|
||||
data: JWTData,
|
||||
{ expOverwrite, useExpiration }: { expOverwrite?: number; useExpiration?: boolean } = { useExpiration: true }
|
||||
): Promise<string> {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
jwt.sign(
|
||||
data,
|
||||
JWT_SECRET,
|
||||
{
|
||||
expiresIn: JWT_EXPIRATION,
|
||||
...(useExpiration ?? true ? { expiresIn: expOverwrite ?? JWT_EXPIRATION } : {}),
|
||||
},
|
||||
(err, token) => {
|
||||
if (err) reject(err.message);
|
||||
|
@ -75,7 +79,7 @@ export abstract class JWTHelper {
|
|||
});
|
||||
}
|
||||
|
||||
static async buildWebapiToken(token: string): Promise<string> {
|
||||
static async buildWebapiToken(token: string, expiration?: Date): Promise<string> {
|
||||
let { id, title } = await WebapiService.getByToken(token);
|
||||
let webapiPermissions = await WebapiPermissionService.getByApi(id);
|
||||
let webapiPermissionStrings = webapiPermissions.map((e) => e.permission);
|
||||
|
@ -92,7 +96,12 @@ export abstract class JWTHelper {
|
|||
sub: "webapi_access_token",
|
||||
};
|
||||
|
||||
return await JWTHelper.create(jwtData)
|
||||
let overwriteExpiration =
|
||||
ms(JWT_EXPIRATION) < new Date().getTime() - new Date(expiration).getTime()
|
||||
? null
|
||||
: Date.now() - new Date(expiration).getTime();
|
||||
|
||||
return await JWTHelper.create(jwtData, { expOverwrite: overwriteExpiration, useExpiration: true })
|
||||
.then((result) => {
|
||||
return result;
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue