hono-passkit-webservice
Version:
Hono.dev integration for Apple Wallet web services
35 lines • 1.29 kB
JavaScript
import { isAuthorizationSchemeValid, getAuthorizationToken, } from "passkit-webservice-toolkit/v1/utils/auth.js";
export async function assertAuthorizationSchemeValid(context, next) {
const authorization = context.req.header("Authorization") || "";
if (!isAuthorizationSchemeValid(authorization)) {
context.status(401);
return context.json({
message: "Apple Schema validation for Authorization header failed.",
});
}
await next();
}
export function assertTokenValid(verifyToken) {
return async function (context, next) {
if (typeof verifyToken !== "function") {
return next();
}
const authorization = context.req.header("Authorization") || "";
let token = "";
try {
token = getAuthorizationToken(authorization);
const tokenValid = await verifyToken(token);
if (!tokenValid) {
throw new Error("Token verifier rejected the provided token.");
}
}
catch (error) {
context.status(401);
return context.json({
message: error instanceof Error ? error.message : "Invalid token.",
});
}
return next();
};
}
//# sourceMappingURL=hooks.js.map