UNPKG

@shopify/shopify-app-express

Version:

Shopify Express Middleware - to simplify the building of Shopify Apps with Express

44 lines (40 loc) 1.54 kB
'use strict'; var redirectOutOfApp = require('./redirect-out-of-app.js'); async function redirectToAuth({ req, res, api, config, isOnline = false, }) { const shop = api.utils.sanitizeShop(req.query.shop); if (!shop) { config.logger.error('No shop provided to redirect to auth'); res.status(500); res.send('No shop provided'); return; } if (req.query.embedded === '1') { clientSideRedirect(api, config, req, res, shop); } else { await serverSideRedirect(api, config, req, res, shop, isOnline); } } function clientSideRedirect(api, config, req, res, shop) { const host = api.utils.sanitizeHost(req.query.host); if (!host) { res.status(500); res.send('No host provided'); return; } const redirectUriParams = new URLSearchParams({ shop, host }).toString(); const redirectUri = `${api.config.hostScheme}://${api.config.hostName}${config.auth.path}?${redirectUriParams}`; redirectOutOfApp.redirectOutOfApp({ config, api })({ req, res, redirectUri, shop }); } async function serverSideRedirect(api, config, req, res, shop, isOnline) { config.logger.debug(`Redirecting to auth at ${config.auth.path}, with callback ${config.auth.callbackPath}`, { shop, isOnline }); await api.auth.begin({ callbackPath: config.auth.callbackPath, shop, isOnline, rawRequest: req, rawResponse: res, }); } exports.redirectToAuth = redirectToAuth; //# sourceMappingURL=redirect-to-auth.js.map