refactor: rabbitmq implement
This commit is contained in:
parent
24350a11a4
commit
3fc70daed0
12 changed files with 676 additions and 545 deletions
|
|
@ -14,32 +14,30 @@ const jwtVerify = createVerifier({
|
|||
},
|
||||
});
|
||||
|
||||
export function expressAuthentication(
|
||||
export async function expressAuthentication(
|
||||
request: express.Request,
|
||||
securityName: string,
|
||||
scopes?: string[],
|
||||
) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
if (securityName !== "bearerAuth") reject(new Error("Unknown authentication method."));
|
||||
if (process.env.AUTH_BYPASS) return { preferred_username: "bypassed" };
|
||||
|
||||
const token = request.headers["authorization"]?.includes("Bearer ")
|
||||
? request.headers["authorization"].split(" ")[1]
|
||||
: null;
|
||||
if (securityName !== "bearerAuth") throw new Error("Unknown authentication method.");
|
||||
|
||||
if (!token) return reject(new HttpError(HttpStatusCode.UNAUTHORIZED, "No token provided."));
|
||||
const token = request.headers["authorization"]?.includes("Bearer ")
|
||||
? request.headers["authorization"].split(" ")[1]
|
||||
: null;
|
||||
|
||||
const payload = await jwtVerify(token).catch((_) => null);
|
||||
if (!token) throw new HttpError(HttpStatusCode.UNAUTHORIZED, "No token provided.");
|
||||
|
||||
if (!payload) {
|
||||
return reject(new HttpError(HttpStatusCode.UNAUTHORIZED, "Invalid token provided."));
|
||||
}
|
||||
const payload = await jwtVerify(token).catch((_) => null);
|
||||
|
||||
if (scopes && !scopes.every((v) => payload.resource_access[payload.azp].roles.includes(v))) {
|
||||
return reject(
|
||||
new HttpError(HttpStatusCode.FORBIDDEN, "You are not allowed to perform this action."),
|
||||
);
|
||||
}
|
||||
if (!payload) {
|
||||
throw new HttpError(HttpStatusCode.UNAUTHORIZED, "Invalid token provided.");
|
||||
}
|
||||
|
||||
return resolve(payload);
|
||||
});
|
||||
if (scopes && !scopes.some((v) => payload.resource_access[payload.azp].roles.includes(v))) {
|
||||
throw new HttpError(HttpStatusCode.FORBIDDEN, "You are not allowed to perform this action.");
|
||||
}
|
||||
|
||||
return payload;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue