UNPKG

@shopify/shopify-app-remix

Version:

Shopify Remix - to simplify the building of Shopify Apps with Remix

33 lines (30 loc) 1.5 kB
import { ensureCORSHeadersFactory } from '../../helpers/ensure-cors-headers.mjs'; import { validateSessionToken } from '../../helpers/validate-session-token.mjs'; import { getSessionTokenHeader } from '../../helpers/get-session-token-header.mjs'; import { respondToBotRequest } from '../../helpers/reject-bot-request.mjs'; import { respondToOptionsRequest } from '../../helpers/respond-to-options-request.mjs'; import '@remix-run/server-runtime'; import '../../../types.mjs'; function authenticateExtensionFactory(params, requestType) { return async function authenticateExtension(request, options = {}) { const { logger } = params; const corsHeaders = options.corsHeaders ?? []; respondToBotRequest(params, request); respondToOptionsRequest(params, request, corsHeaders); const sessionTokenHeader = getSessionTokenHeader(request); logger.info(`Authenticating ${requestType} request`); if (!sessionTokenHeader) { logger.debug('Request did not contain a session token'); throw new Response(undefined, { status: 401, statusText: 'Unauthorized', }); } return { sessionToken: await validateSessionToken(params, request, sessionTokenHeader, { checkAudience: false }), cors: ensureCORSHeadersFactory(params, request, corsHeaders), }; }; } export { authenticateExtensionFactory }; //# sourceMappingURL=authenticate.mjs.map