UNPKG

@shopify/shopify-app-react-router

Version:

Shopify React Router - to simplify the building of Shopify Apps with React Router

37 lines (33 loc) 1.33 kB
'use strict'; var reactRouter = require('react-router'); require('../../../types.js'); require('@shopify/shopify-api'); var redirectWithAppBridgeHeaders = require('../helpers/redirect-with-app-bridge-headers.js'); function redirectOutOfApp(params, request, url, shop) { const { config, logger } = params; logger.debug('Redirecting out of app', { shop, url }); const requestUrl = new URL(request.url); const isEmbeddedRequest = requestUrl.searchParams.get('embedded') === '1'; const isXhrRequest = request.headers.get('authorization'); if (isXhrRequest) { throw new Response(undefined, { status: 401, statusText: 'Unauthorized', headers: redirectWithAppBridgeHeaders.getAppBridgeHeaders(url), }); } else if (isEmbeddedRequest) { const params = new URLSearchParams({ shop, host: requestUrl.searchParams.get('host'), exitIframe: url, }); throw reactRouter.redirect(`${config.auth.exitIframePath}?${params.toString()}`); } else { // This will only ever happen for non-embedded apps, because the authenticator will stop before reaching this point throw reactRouter.redirect(url); } } exports.redirectOutOfApp = redirectOutOfApp; //# sourceMappingURL=helpers.js.map