@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
JavaScript
;
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