adonis-passkit-webservice
Version:
AdonisJS integration for Apple Wallet web services
32 lines • 1.17 kB
JavaScript
import { isAuthorizationSchemeValid, getAuthorizationToken, } from "passkit-webservice-toolkit/v1/utils/auth.js";
export async function assertAuthorizationSchemeValidMiddleware(context, next) {
const { authorization = "" } = context.request.headers();
if (!isAuthorizationSchemeValid(authorization)) {
context.response
.status(401)
.send("Apple Schema validation for Authorization header failed.");
return;
}
await next();
}
export function assertTokenValidMiddleware(verifyToken) {
return async function (context, next) {
if (typeof verifyToken !== "function") {
await next();
return;
}
const { authorization = "" } = context.request.headers();
try {
const token = getAuthorizationToken(authorization);
if (!(await verifyToken(token))) {
throw new Error("Token verifier rejected the provided token.");
}
return await next();
}
catch (error) {
context.response.status(401).send(error);
return;
}
};
}
//# sourceMappingURL=hooks.js.map