UNPKG

@shopify/shopify-app-express

Version:

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

1 lines 3.62 kB
{"version":3,"file":"redirect-to-auth.mjs","sources":["../../../src/redirect-to-auth.ts"],"sourcesContent":["import {Shopify} from '@shopify/shopify-api';\nimport {Request, Response} from 'express';\n\nimport {RedirectToAuthParams} from './types';\nimport {redirectOutOfApp} from './redirect-out-of-app';\nimport {AppConfigInterface} from './config-types';\n\nexport async function redirectToAuth({\n req,\n res,\n api,\n config,\n isOnline = false,\n}: RedirectToAuthParams) {\n const shop = api.utils.sanitizeShop(req.query.shop as string);\n if (!shop) {\n config.logger.error('No shop provided to redirect to auth');\n res.status(500);\n res.send('No shop provided');\n return;\n }\n\n if (req.query.embedded === '1') {\n clientSideRedirect(api, config, req, res, shop);\n } else {\n await serverSideRedirect(api, config, req, res, shop, isOnline);\n }\n}\n\nfunction clientSideRedirect(\n api: Shopify,\n config: AppConfigInterface,\n req: Request,\n res: Response,\n shop: string,\n): void {\n const host = api.utils.sanitizeHost(req.query.host as string);\n if (!host) {\n res.status(500);\n res.send('No host provided');\n return;\n }\n\n const redirectUriParams = new URLSearchParams({shop, host}).toString();\n const redirectUri = `${api.config.hostScheme}://${api.config.hostName}${config.auth.path}?${redirectUriParams}`;\n\n redirectOutOfApp({config, api})({req, res, redirectUri, shop});\n}\n\nasync function serverSideRedirect(\n api: Shopify,\n config: AppConfigInterface,\n req: Request,\n res: Response,\n shop: string,\n isOnline: boolean,\n): Promise<void> {\n config.logger.debug(\n `Redirecting to auth at ${config.auth.path}, with callback ${config.auth.callbackPath}`,\n {shop, isOnline},\n );\n\n await api.auth.begin({\n callbackPath: config.auth.callbackPath,\n shop,\n isOnline,\n rawRequest: req,\n rawResponse: res,\n });\n}\n"],"names":[],"mappings":";;AAOO,eAAe,cAAc,CAAC,EACnC,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,QAAQ,GAAG,KAAK,GACK,EAAA;AACrB,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC;IAC7D,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC;AAC3D,QAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACf,QAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC5B;IACF;IAEA,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,EAAE;QAC9B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;IACjD;SAAO;AACL,QAAA,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC;IACjE;AACF;AAEA,SAAS,kBAAkB,CACzB,GAAY,EACZ,MAA0B,EAC1B,GAAY,EACZ,GAAa,EACb,IAAY,EAAA;AAEZ,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC;IAC7D,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACf,QAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC5B;IACF;AAEA,IAAA,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,QAAQ,EAAE;IACtE,MAAM,WAAW,GAAG,CAAA,EAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAA,GAAA,EAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAA,EAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,iBAAiB,CAAA,CAAE;AAE/G,IAAA,gBAAgB,CAAC,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;AAChE;AAEA,eAAe,kBAAkB,CAC/B,GAAY,EACZ,MAA0B,EAC1B,GAAY,EACZ,GAAa,EACb,IAAY,EACZ,QAAiB,EAAA;IAEjB,MAAM,CAAC,MAAM,CAAC,KAAK,CACjB,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA,gBAAA,EAAmB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAA,CAAE,EACvF,EAAC,IAAI,EAAE,QAAQ,EAAC,CACjB;AAED,IAAA,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,QAAA,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;QACtC,IAAI;QACJ,QAAQ;AACR,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,WAAW,EAAE,GAAG;AACjB,KAAA,CAAC;AACJ;;;;"}