@shopify/shopify-app-remix 3.5.1 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/react/components/AppProxyForm/AppProxyForm.js +8 -5
- package/dist/cjs/react/components/AppProxyForm/AppProxyForm.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/authenticate.js +17 -6
- package/dist/cjs/server/authenticate/admin/authenticate.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/billing/helpers.js +1 -1
- package/dist/cjs/server/authenticate/admin/billing/helpers.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/handle-client-error.js +2 -1
- package/dist/cjs/server/authenticate/admin/helpers/handle-client-error.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/redirect.js +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/redirect.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/trigger-after-auth-hook.js +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/trigger-after-auth-hook.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/helpers/validate-shop-and-host-params.js +1 -0
- package/dist/cjs/server/authenticate/admin/helpers/validate-shop-and-host-params.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/strategies/auth-code-flow.js +5 -3
- package/dist/cjs/server/authenticate/admin/strategies/auth-code-flow.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/strategies/merchant-custom-app.js +8 -3
- package/dist/cjs/server/authenticate/admin/strategies/merchant-custom-app.js.map +1 -1
- package/dist/cjs/server/authenticate/admin/strategies/token-exchange.js +7 -4
- package/dist/cjs/server/authenticate/admin/strategies/token-exchange.js.map +1 -1
- package/dist/cjs/server/authenticate/helpers/create-or-load-offline-session.js +4 -2
- package/dist/cjs/server/authenticate/helpers/create-or-load-offline-session.js.map +1 -1
- package/dist/cjs/server/authenticate/helpers/get-shop-from-request.js +9 -0
- package/dist/cjs/server/authenticate/helpers/get-shop-from-request.js.map +1 -0
- package/dist/cjs/server/authenticate/helpers/invalidate-access-token.js +3 -1
- package/dist/cjs/server/authenticate/helpers/invalidate-access-token.js.map +1 -1
- package/dist/cjs/server/authenticate/helpers/validate-session-token.js +8 -3
- package/dist/cjs/server/authenticate/helpers/validate-session-token.js.map +1 -1
- package/dist/cjs/server/authenticate/login/login.js.map +1 -1
- package/dist/cjs/server/authenticate/public/appProxy/authenticate.js +5 -4
- package/dist/cjs/server/authenticate/public/appProxy/authenticate.js.map +1 -1
- package/dist/cjs/server/authenticate/public/extension/authenticate.js +7 -2
- package/dist/cjs/server/authenticate/public/extension/authenticate.js.map +1 -1
- package/dist/cjs/server/authenticate/public/factory.js +3 -0
- package/dist/cjs/server/authenticate/public/factory.js.map +1 -1
- package/dist/cjs/server/authenticate/public/pos/authenticate.js +10 -0
- package/dist/cjs/server/authenticate/public/pos/authenticate.js.map +1 -0
- package/dist/cjs/server/clients/admin/graphql.js +1 -0
- package/dist/cjs/server/clients/admin/graphql.js.map +1 -1
- package/dist/cjs/server/version.js +1 -1
- package/dist/esm/react/components/AppProxyForm/AppProxyForm.mjs +8 -5
- package/dist/esm/react/components/AppProxyForm/AppProxyForm.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/authenticate.mjs +17 -6
- package/dist/esm/server/authenticate/admin/authenticate.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/billing/helpers.mjs +1 -1
- package/dist/esm/server/authenticate/admin/billing/helpers.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/helpers/handle-client-error.mjs +2 -1
- package/dist/esm/server/authenticate/admin/helpers/handle-client-error.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/helpers/redirect.mjs +1 -1
- package/dist/esm/server/authenticate/admin/helpers/redirect.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/helpers/trigger-after-auth-hook.mjs +1 -1
- package/dist/esm/server/authenticate/admin/helpers/trigger-after-auth-hook.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/helpers/validate-shop-and-host-params.mjs +1 -0
- package/dist/esm/server/authenticate/admin/helpers/validate-shop-and-host-params.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/strategies/auth-code-flow.mjs +5 -3
- package/dist/esm/server/authenticate/admin/strategies/auth-code-flow.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/strategies/merchant-custom-app.mjs +8 -3
- package/dist/esm/server/authenticate/admin/strategies/merchant-custom-app.mjs.map +1 -1
- package/dist/esm/server/authenticate/admin/strategies/token-exchange.mjs +7 -4
- package/dist/esm/server/authenticate/admin/strategies/token-exchange.mjs.map +1 -1
- package/dist/esm/server/authenticate/helpers/create-or-load-offline-session.mjs +4 -2
- package/dist/esm/server/authenticate/helpers/create-or-load-offline-session.mjs.map +1 -1
- package/dist/esm/server/authenticate/helpers/get-shop-from-request.mjs +7 -0
- package/dist/esm/server/authenticate/helpers/get-shop-from-request.mjs.map +1 -0
- package/dist/esm/server/authenticate/helpers/invalidate-access-token.mjs +3 -1
- package/dist/esm/server/authenticate/helpers/invalidate-access-token.mjs.map +1 -1
- package/dist/esm/server/authenticate/helpers/validate-session-token.mjs +8 -3
- package/dist/esm/server/authenticate/helpers/validate-session-token.mjs.map +1 -1
- package/dist/esm/server/authenticate/login/login.mjs.map +1 -1
- package/dist/esm/server/authenticate/public/appProxy/authenticate.mjs +5 -4
- package/dist/esm/server/authenticate/public/appProxy/authenticate.mjs.map +1 -1
- package/dist/esm/server/authenticate/public/extension/authenticate.mjs +7 -2
- package/dist/esm/server/authenticate/public/extension/authenticate.mjs.map +1 -1
- package/dist/esm/server/authenticate/public/factory.mjs +3 -0
- package/dist/esm/server/authenticate/public/factory.mjs.map +1 -1
- package/dist/esm/server/authenticate/public/pos/authenticate.mjs +8 -0
- package/dist/esm/server/authenticate/public/pos/authenticate.mjs.map +1 -0
- package/dist/esm/server/clients/admin/graphql.mjs +1 -0
- package/dist/esm/server/clients/admin/graphql.mjs.map +1 -1
- package/dist/esm/server/version.mjs +1 -1
- package/dist/ts/react/components/AppProxyForm/AppProxyForm.d.ts +8 -5
- package/dist/ts/react/components/AppProxyForm/AppProxyForm.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/authenticate.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/helpers/handle-client-error.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/helpers/validate-shop-and-host-params.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/strategies/auth-code-flow.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/strategies/merchant-custom-app.d.ts +1 -1
- package/dist/ts/server/authenticate/admin/strategies/merchant-custom-app.d.ts.map +1 -1
- package/dist/ts/server/authenticate/admin/strategies/token-exchange.d.ts.map +1 -1
- package/dist/ts/server/authenticate/helpers/create-or-load-offline-session.d.ts.map +1 -1
- package/dist/ts/server/authenticate/helpers/get-shop-from-request.d.ts +2 -0
- package/dist/ts/server/authenticate/helpers/get-shop-from-request.d.ts.map +1 -0
- package/dist/ts/server/authenticate/helpers/index.d.ts +1 -0
- package/dist/ts/server/authenticate/helpers/index.d.ts.map +1 -1
- package/dist/ts/server/authenticate/helpers/invalidate-access-token.d.ts.map +1 -1
- package/dist/ts/server/authenticate/helpers/validate-session-token.d.ts.map +1 -1
- package/dist/ts/server/authenticate/public/appProxy/authenticate.d.ts.map +1 -1
- package/dist/ts/server/authenticate/public/extension/authenticate.d.ts.map +1 -1
- package/dist/ts/server/authenticate/public/factory.d.ts.map +1 -1
- package/dist/ts/server/authenticate/public/pos/authenticate.d.ts +4 -0
- package/dist/ts/server/authenticate/public/pos/authenticate.d.ts.map +1 -0
- package/dist/ts/server/authenticate/public/pos/types.d.ts +58 -0
- package/dist/ts/server/authenticate/public/pos/types.d.ts.map +1 -0
- package/dist/ts/server/authenticate/public/types.d.ts +20 -0
- package/dist/ts/server/authenticate/public/types.d.ts.map +1 -1
- package/dist/ts/server/clients/admin/graphql.d.ts.map +1 -1
- package/dist/ts/server/clients/types.d.ts +4 -0
- package/dist/ts/server/clients/types.d.ts.map +1 -1
- package/dist/ts/server/unauthenticated/admin/types.d.ts +2 -1
- package/dist/ts/server/unauthenticated/admin/types.d.ts.map +1 -1
- package/dist/ts/server/version.d.ts +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +16 -13
|
@@ -6,15 +6,19 @@ var react = require('@remix-run/react');
|
|
|
6
6
|
var AppProxyProvider = require('../AppProxyProvider/AppProxyProvider.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Sets up a Remix `<Form>` component that works when rendered
|
|
9
|
+
* Sets up a Remix `<Form>` component that works when rendered on an app proxy page.
|
|
10
10
|
*
|
|
11
11
|
* Supports any properties accepted by the `<Form>` component.
|
|
12
12
|
*
|
|
13
|
+
* Because Remix doesn't support URL rewriting, any route using this component should <b>match the pathname of the proxy
|
|
14
|
+
* URL exactly</b>, and <b>end in a trailing slash</b> (e.g., `https://<shop>/apps/proxy/`), or set the Remix Form prop
|
|
15
|
+
* `navigate` to `false`.
|
|
16
|
+
*
|
|
13
17
|
* @example
|
|
14
18
|
* <caption>Render a form element in a proxied route.</caption>
|
|
15
19
|
* <description>Use an `AppProxyForm` within an `AppProxy` to create a form.</description>
|
|
16
20
|
* ```ts
|
|
17
|
-
* // /app/routes
|
|
21
|
+
* // /app/routes/apps/appProxy.ts
|
|
18
22
|
* import {
|
|
19
23
|
* AppProxyProvider,
|
|
20
24
|
* AppProxyForm,
|
|
@@ -44,12 +48,11 @@ var AppProxyProvider = require('../AppProxyProvider/AppProxyProvider.js');
|
|
|
44
48
|
*
|
|
45
49
|
* export default function App() {
|
|
46
50
|
* const { appUrl } = useLoaderData();
|
|
47
|
-
* const data = useActionData();
|
|
48
51
|
*
|
|
49
52
|
* return (
|
|
50
53
|
* <AppProxyProvider appUrl={appUrl}>
|
|
51
|
-
* <AppProxyForm action="/">
|
|
52
|
-
* <input type="text" name="field"
|
|
54
|
+
* <AppProxyForm action="/apps/appProxy" method="post">
|
|
55
|
+
* <input type="text" name="field" />
|
|
53
56
|
*
|
|
54
57
|
* <input type="submit" name="Submit" />
|
|
55
58
|
* </AppProxyForm>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppProxyForm.js","sources":["../../../../../../src/react/components/AppProxyForm/AppProxyForm.tsx"],"sourcesContent":[null],"names":["useContext","AppProxyProviderContext","_jsx","Form"],"mappings":";;;;;;;AASA
|
|
1
|
+
{"version":3,"file":"AppProxyForm.js","sources":["../../../../../../src/react/components/AppProxyForm/AppProxyForm.tsx"],"sourcesContent":[null],"names":["useContext","AppProxyProviderContext","_jsx","Form"],"mappings":";;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;AACG,SAAU,YAAY,CAAC,KAAwB,EAAA;AACnD,IAAA,MAAM,OAAO,GAAGA,gBAAU,CAACC,wCAAuB,CAAC;IAEnD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE;;IAGH,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,EAAC,GAAG,KAAK;IAE/C,QACEC,eAACC,UAAI,EAAA,EAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAM,GAAA,UAAU,YAC3D,QAAQ,EAAA,CACJ;AAEX;;;;"}
|
|
@@ -7,6 +7,7 @@ var rejectBotRequest = require('../helpers/reject-bot-request.js');
|
|
|
7
7
|
var respondToOptionsRequest = require('../helpers/respond-to-options-request.js');
|
|
8
8
|
require('@remix-run/server-runtime');
|
|
9
9
|
require('../../types.js');
|
|
10
|
+
var getShopFromRequest = require('../helpers/get-shop-from-request.js');
|
|
10
11
|
var cancel = require('./billing/cancel.js');
|
|
11
12
|
var require$1 = require('./billing/require.js');
|
|
12
13
|
var request = require('./billing/request.js');
|
|
@@ -27,7 +28,9 @@ function authStrategyFactory({ strategy, ...params }) {
|
|
|
27
28
|
async function respondToBouncePageRequest(request) {
|
|
28
29
|
const url = new URL(request.url);
|
|
29
30
|
if (url.pathname === config.auth.patchSessionTokenPath) {
|
|
30
|
-
logger.debug('Rendering bounce page'
|
|
31
|
+
logger.debug('Rendering bounce page', {
|
|
32
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
33
|
+
});
|
|
31
34
|
throw renderAppBridge.renderAppBridge({ config, logger, api }, request);
|
|
32
35
|
}
|
|
33
36
|
}
|
|
@@ -35,7 +38,10 @@ function authStrategyFactory({ strategy, ...params }) {
|
|
|
35
38
|
const url = new URL(request.url);
|
|
36
39
|
if (url.pathname === config.auth.exitIframePath) {
|
|
37
40
|
const destination = url.searchParams.get('exitIframe');
|
|
38
|
-
logger.debug('Rendering exit iframe page', {
|
|
41
|
+
logger.debug('Rendering exit iframe page', {
|
|
42
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
43
|
+
destination,
|
|
44
|
+
});
|
|
39
45
|
throw renderAppBridge.renderAppBridge({ config, logger, api }, request, { url: destination });
|
|
40
46
|
}
|
|
41
47
|
}
|
|
@@ -87,9 +93,11 @@ function authStrategyFactory({ strategy, ...params }) {
|
|
|
87
93
|
await ensureAppIsEmbeddedIfRequired.ensureAppIsEmbeddedIfRequired(params, request);
|
|
88
94
|
await ensureSessionTokenSearchParamIfRequired.ensureSessionTokenSearchParamIfRequired(params, request);
|
|
89
95
|
}
|
|
90
|
-
logger.info('Authenticating admin request'
|
|
96
|
+
logger.info('Authenticating admin request', {
|
|
97
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
98
|
+
});
|
|
91
99
|
const { payload, shop, sessionId, sessionToken } = await getSessionTokenContext(params, request);
|
|
92
|
-
logger.debug('Loading session from storage', { sessionId });
|
|
100
|
+
logger.debug('Loading session from storage', { shop, sessionId });
|
|
93
101
|
const existingSession = sessionId
|
|
94
102
|
? await config.sessionStorage.loadSession(sessionId)
|
|
95
103
|
: undefined;
|
|
@@ -102,7 +110,9 @@ function authStrategyFactory({ strategy, ...params }) {
|
|
|
102
110
|
}
|
|
103
111
|
catch (errorOrResponse) {
|
|
104
112
|
if (errorOrResponse instanceof Response) {
|
|
105
|
-
logger.debug('Authenticate returned a response'
|
|
113
|
+
logger.debug('Authenticate returned a response', {
|
|
114
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
115
|
+
});
|
|
106
116
|
ensureCorsHeaders.ensureCORSHeadersFactory(params, request)(errorOrResponse);
|
|
107
117
|
}
|
|
108
118
|
throw errorOrResponse;
|
|
@@ -115,6 +125,7 @@ async function getSessionTokenContext(params, request) {
|
|
|
115
125
|
const searchParamSessionToken = getSessionTokenHeader.getSessionTokenFromUrlParam(request);
|
|
116
126
|
const sessionToken = (headerSessionToken || searchParamSessionToken);
|
|
117
127
|
logger.debug('Attempting to authenticate session token', {
|
|
128
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
118
129
|
sessionToken: JSON.stringify({
|
|
119
130
|
header: headerSessionToken,
|
|
120
131
|
search: searchParamSessionToken,
|
|
@@ -124,7 +135,7 @@ async function getSessionTokenContext(params, request) {
|
|
|
124
135
|
const payload = await validateSessionToken.validateSessionToken(params, request, sessionToken);
|
|
125
136
|
const dest = new URL(payload.dest);
|
|
126
137
|
const shop = dest.hostname;
|
|
127
|
-
logger.debug('Session token is valid', { shop, payload });
|
|
138
|
+
logger.debug('Session token is valid - authenticated', { shop, payload });
|
|
128
139
|
const sessionId = config.useOnlineTokens
|
|
129
140
|
? api.session.getJwtSessionId(shop, payload.sub)
|
|
130
141
|
: api.session.getOfflineId(shop);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.js","sources":["../../../../../../src/server/authenticate/admin/authenticate.ts"],"sourcesContent":[null],"names":["renderAppBridge","request","createAdminApiContext","requireBillingFactory","checkBillingFactory","requestBillingFactory","cancelBillingFactory","createUsageRecordFactory","updateUsageCappedAmountFactory","ensureCORSHeadersFactory","redirectFactory","scopesApiFactory","respondToBotRequest","respondToOptionsRequest","getSessionTokenHeader","validateShopAndHostParams","ensureAppIsEmbeddedIfRequired","ensureSessionTokenSearchParamIfRequired","getSessionTokenFromUrlParam","validateSessionToken"],"mappings":"
|
|
1
|
+
{"version":3,"file":"authenticate.js","sources":["../../../../../../src/server/authenticate/admin/authenticate.ts"],"sourcesContent":[null],"names":["getShopFromRequest","renderAppBridge","request","createAdminApiContext","requireBillingFactory","checkBillingFactory","requestBillingFactory","cancelBillingFactory","createUsageRecordFactory","updateUsageCappedAmountFactory","ensureCORSHeadersFactory","redirectFactory","scopesApiFactory","respondToBotRequest","respondToOptionsRequest","getSessionTokenHeader","validateShopAndHostParams","ensureAppIsEmbeddedIfRequired","ensureSessionTokenSearchParamIfRequired","getSessionTokenFromUrlParam","validateSessionToken"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ var redirectWithAppBridgeHeaders = require('../helpers/redirect-with-app-bridge-
|
|
|
6
6
|
|
|
7
7
|
function redirectOutOfApp(params, request, url, shop) {
|
|
8
8
|
const { config, logger } = params;
|
|
9
|
-
logger.debug('Redirecting out of app', { url });
|
|
9
|
+
logger.debug('Redirecting out of app', { shop, url });
|
|
10
10
|
const requestUrl = new URL(request.url);
|
|
11
11
|
const isEmbeddedRequest = requestUrl.searchParams.get('embedded') === '1';
|
|
12
12
|
const isXhrRequest = request.headers.get('authorization');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../../src/server/authenticate/admin/billing/helpers.ts"],"sourcesContent":[null],"names":["getAppBridgeHeaders","redirect"],"mappings":";;;;;;AAKM,SAAU,gBAAgB,CAC9B,MAAmB,EACnB,OAAgB,EAChB,GAAW,EACX,IAAY,EAAA;AAEZ,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,GAAG,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../../src/server/authenticate/admin/billing/helpers.ts"],"sourcesContent":[null],"names":["getAppBridgeHeaders","redirect"],"mappings":";;;;;;AAKM,SAAU,gBAAgB,CAC9B,MAAmB,EACnB,OAAgB,EAChB,GAAW,EACX,IAAY,EAAA;AAEZ,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AACvC,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEzD,IAAI,YAAY,EAAE;;;;;AAKhB,QAAA,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC5B,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,OAAO,EAAEA,gDAAmB,CAAC,GAAG,CAAC;AAClC,SAAA,CAAC;;SACG,IAAI,iBAAiB,EAAE;AAC5B,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,IAAI;YACJ,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE;AAC1C,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;AAEF,QAAA,MAAMC,sBAAQ,CAAC,CAAG,EAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;;SAC/D;;AAEL,QAAA,MAAMA,sBAAQ,CAAC,GAAG,CAAC;;AAEvB;;;;"}
|
|
@@ -5,10 +5,11 @@ var shopifyApi = require('@shopify/shopify-api');
|
|
|
5
5
|
function handleClientErrorFactory({ request, onError, }) {
|
|
6
6
|
return async function handleClientError({ error, params, session, }) {
|
|
7
7
|
if (error instanceof shopifyApi.HttpResponseError !== true) {
|
|
8
|
-
params.logger.debug(`Got a response error from the API: ${error.message}
|
|
8
|
+
params.logger.debug(`Got a response error from the API: ${error.message}`, { shop: session.shop });
|
|
9
9
|
throw error;
|
|
10
10
|
}
|
|
11
11
|
params.logger.debug(`Got an HTTP response error from the API: ${error.message}`, {
|
|
12
|
+
shop: session.shop,
|
|
12
13
|
code: error.response.code,
|
|
13
14
|
statusText: error.response.statusText,
|
|
14
15
|
body: JSON.stringify(error.response.body),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-client-error.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/handle-client-error.ts"],"sourcesContent":[null],"names":["HttpResponseError"],"mappings":";;;;SAKgB,wBAAwB,CAAC,EACvC,OAAO,EACP,OAAO,GACkB,EAAA;IACzB,OAAO,eAAe,iBAAiB,CAAC,EACtC,KAAK,EACL,MAAM,EACN,OAAO,GACR,EAAA;AACC,QAAA,IAAI,KAAK,YAAYA,4BAAiB,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"handle-client-error.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/handle-client-error.ts"],"sourcesContent":[null],"names":["HttpResponseError"],"mappings":";;;;SAKgB,wBAAwB,CAAC,EACvC,OAAO,EACP,OAAO,GACkB,EAAA;IACzB,OAAO,eAAe,iBAAiB,CAAC,EACtC,KAAK,EACL,MAAM,EACN,OAAO,GACR,EAAA;AACC,QAAA,IAAI,KAAK,YAAYA,4BAAiB,KAAK,IAAI,EAAE;AAC/C,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CACjB,CAAA,mCAAA,EAAsC,KAAK,CAAC,OAAO,EAAE,EACrD,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAC,CACrB;AACD,YAAA,MAAM,KAAK;;QAGb,MAAM,CAAC,MAAM,CAAC,KAAK,CACjB,4CAA4C,KAAK,CAAC,OAAO,CAAA,CAAE,EAC3D;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,YAAA,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;AACzB,YAAA,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;YACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1C,SAAA,CACF;QAED,IAAI,OAAO,EAAE;YACX,MAAM,OAAO,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;;;AAI1C,QAAA,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACtD,YAAA,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;AAC3B,YAAA,OAAO,EAAE;gBACP,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAQ,CAAC,cAAc,CAAW;AAClE,aAAA;AACF,SAAA,CAAC;AACJ,KAAC;AACH;;;;"}
|
|
@@ -16,7 +16,7 @@ function redirectFactory(params, request, shop) {
|
|
|
16
16
|
shop,
|
|
17
17
|
init,
|
|
18
18
|
});
|
|
19
|
-
logger.debug('Redirecting', { url: parsedUrl.toString() });
|
|
19
|
+
logger.debug('Redirecting', { shop, url: parsedUrl.toString() });
|
|
20
20
|
const isSameOrigin = parsedUrl.origin === config.appUrl;
|
|
21
21
|
if (isSameOrigin || url.startsWith('/')) {
|
|
22
22
|
searchParams.forEach((value, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/redirect.ts"],"sourcesContent":[null],"names":["renderAppBridge","remixRedirect","redirectWithAppBridgeHeaders","getSessionTokenHeader"],"mappings":";;;;;;;SA+BgB,eAAe,CAC7B,MAAmB,EACnB,OAAgB,EAChB,IAAY,EAAA;AAEZ,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAE/B,IAAA,OAAO,SAAS,QAAQ,CAAC,GAAG,EAAE,IAAkB,EAAA;QAC9C,MAAM,EAAC,YAAY,EAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,MAAM,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;YACxC,MAAM;YACN,GAAG;YACH,IAAI,EAAE,MAAM,CAAC,MAAM;YACnB,IAAI;YACJ,IAAI;AACL,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"redirect.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/redirect.ts"],"sourcesContent":[null],"names":["renderAppBridge","remixRedirect","redirectWithAppBridgeHeaders","getSessionTokenHeader"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var createAdminApiContext = require('./create-admin-api-context.js');
|
|
|
5
5
|
async function triggerAfterAuthHook(params, session, request, authStrategy) {
|
|
6
6
|
const { config, logger } = params;
|
|
7
7
|
if (config.hooks.afterAuth) {
|
|
8
|
-
logger.info('Running afterAuth hook');
|
|
8
|
+
logger.info('Running afterAuth hook', { shop: session.shop });
|
|
9
9
|
const admin = createAdminApiContext.createAdminApiContext(session, params, authStrategy.handleClientError(request));
|
|
10
10
|
await config.hooks.afterAuth({
|
|
11
11
|
session,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-after-auth-hook.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/trigger-after-auth-hook.ts"],"sourcesContent":[null],"names":["createAdminApiContext"],"mappings":";;;;AASO,eAAe,oBAAoB,CAIxC,MAAmB,EACnB,OAAgB,EAChB,OAAgB,EAChB,YAAmC,EAAA;AAEnC,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAC/B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;AAC1B,QAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger-after-auth-hook.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/trigger-after-auth-hook.ts"],"sourcesContent":[null],"names":["createAdminApiContext"],"mappings":";;;;AASO,eAAe,oBAAoB,CAIxC,MAAmB,EACnB,OAAgB,EAChB,OAAgB,EAChB,YAAmC,EAAA;AAEnC,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAC/B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;AAC1B,QAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAC,CAAC;AAE3D,QAAA,MAAM,KAAK,GAAGA,2CAAqB,CACjC,OAAO,EACP,MAAM,EACN,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CACF;AAEvC,QAAA,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC3B,OAAO;YACP,KAAK;AACN,SAAA,CAAC;;AAEN;;;;"}
|
|
@@ -16,6 +16,7 @@ function validateShopAndHostParams(params, request) {
|
|
|
16
16
|
const host = api.utils.sanitizeHost(url.searchParams.get('host'));
|
|
17
17
|
if (!host) {
|
|
18
18
|
logger.debug('Invalid host, redirecting to login path', {
|
|
19
|
+
shop,
|
|
19
20
|
host: url.searchParams.get('host'),
|
|
20
21
|
});
|
|
21
22
|
throw redirectToLoginPath(request, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-shop-and-host-params.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/validate-shop-and-host-params.ts"],"sourcesContent":[null],"names":["redirect"],"mappings":";;;;AAIgB,SAAA,yBAAyB,CACvC,MAAmB,EACnB,OAAgB,EAAA;IAEhB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAEpC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;gBACjE,IAAI;AACL,aAAA,CAAC;AACF,YAAA,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;;AAG5C,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,aAAA,CAAC;AACF,YAAA,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;;;AAGhD;AAEA,SAAS,mBAAmB,CAAC,OAAgB,EAAE,MAAmB,EAAA;AAChE,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;QACtC,MAAM,OAAO,GACX,CAA2E,yEAAA,CAAA;AAC3E,YAAA,CAAA,EAAA,EAAK,MAAM,CAAC,IAAI,CAAC,SAAS,uEAAuE;AAEnG,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC;;IAG5C,MAAMA,sBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC;;;;"}
|
|
1
|
+
{"version":3,"file":"validate-shop-and-host-params.js","sources":["../../../../../../../src/server/authenticate/admin/helpers/validate-shop-and-host-params.ts"],"sourcesContent":[null],"names":["redirect"],"mappings":";;;;AAIgB,SAAA,yBAAyB,CACvC,MAAmB,EACnB,OAAgB,EAAA;IAEhB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAEpC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;gBACjE,IAAI;AACL,aAAA,CAAC;AACF,YAAA,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;;AAG5C,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,aAAA,CAAC;AACF,YAAA,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;;;AAGhD;AAEA,SAAS,mBAAmB,CAAC,OAAgB,EAAE,MAAmB,EAAA;AAChE,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;QACtC,MAAM,OAAO,GACX,CAA2E,yEAAA,CAAA;AAC3E,YAAA,CAAA,EAAA,EAAK,MAAM,CAAC,IAAI,CAAC,SAAS,uEAAuE;AAEnG,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC;;IAG5C,MAAMA,sBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC;;;;"}
|
|
@@ -126,14 +126,16 @@ class AuthCodeFlowStrategy {
|
|
|
126
126
|
}
|
|
127
127
|
async handleAuthCallbackRequest(request, shop) {
|
|
128
128
|
const { api, config, logger } = this;
|
|
129
|
-
logger.info('Handling OAuth callback request');
|
|
129
|
+
logger.info('Handling OAuth callback request', { shop });
|
|
130
130
|
try {
|
|
131
131
|
const { session, headers: responseHeaders } = await api.auth.callback({
|
|
132
132
|
rawRequest: request,
|
|
133
133
|
});
|
|
134
134
|
await config.sessionStorage.storeSession(session);
|
|
135
135
|
if (config.useOnlineTokens && !session.isOnline) {
|
|
136
|
-
logger.info('Requesting online access token for offline session'
|
|
136
|
+
logger.info('Requesting online access token for offline session', {
|
|
137
|
+
shop,
|
|
138
|
+
});
|
|
137
139
|
await beginAuth.beginAuth({ api, config, logger }, request, true, shop);
|
|
138
140
|
}
|
|
139
141
|
logger.debug('Request is valid, loaded session from OAuth callback', {
|
|
@@ -179,7 +181,7 @@ class AuthCodeFlowStrategy {
|
|
|
179
181
|
}
|
|
180
182
|
async oauthCallbackError(error, request, shop) {
|
|
181
183
|
const { logger } = this;
|
|
182
|
-
logger.error('Error during OAuth callback', { error: error.message });
|
|
184
|
+
logger.error('Error during OAuth callback', { shop, error: error.message });
|
|
183
185
|
if (error instanceof shopifyApi.CookieNotFound) {
|
|
184
186
|
return this.handleAuthBeginRequest(request, shop);
|
|
185
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-code-flow.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/auth-code-flow.ts"],"sourcesContent":[null],"names":["getSessionTokenHeader","redirectToAuthPage","handleClientErrorFactory","validateShopAndHostParams","redirectWithExitIframe","beginAuth","triggerAfterAuthHook","redirectToShopifyOrAppRoot","CookieNotFound","InvalidHmacError","InvalidOAuthError","HttpResponseError","GraphqlQueryError"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth-code-flow.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/auth-code-flow.ts"],"sourcesContent":[null],"names":["getSessionTokenHeader","redirectToAuthPage","handleClientErrorFactory","validateShopAndHostParams","redirectWithExitIframe","beginAuth","triggerAfterAuthHook","redirectToShopifyOrAppRoot","CookieNotFound","InvalidHmacError","InvalidOAuthError","HttpResponseError","GraphqlQueryError"],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
var shopifyApi = require('@shopify/shopify-api');
|
|
4
4
|
require('@remix-run/server-runtime');
|
|
5
5
|
var handleClientError = require('../helpers/handle-client-error.js');
|
|
6
|
+
var getShopFromRequest = require('../../helpers/get-shop-from-request.js');
|
|
7
|
+
require('isbot');
|
|
8
|
+
require('../../../types.js');
|
|
6
9
|
|
|
7
10
|
class MerchantCustomAuth {
|
|
8
11
|
api;
|
|
@@ -13,12 +16,14 @@ class MerchantCustomAuth {
|
|
|
13
16
|
this.config = config;
|
|
14
17
|
this.logger = logger;
|
|
15
18
|
}
|
|
16
|
-
async respondToOAuthRequests(
|
|
17
|
-
this.logger.debug('Skipping OAuth request for merchant custom app'
|
|
19
|
+
async respondToOAuthRequests(request) {
|
|
20
|
+
this.logger.debug('Skipping OAuth request for merchant custom app', {
|
|
21
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
22
|
+
});
|
|
18
23
|
}
|
|
19
24
|
async authenticate(_request, sessionContext) {
|
|
20
25
|
const { shop } = sessionContext;
|
|
21
|
-
this.logger.debug('Building session from configured access token for merchant custom app');
|
|
26
|
+
this.logger.debug('Building session from configured access token for merchant custom app', { shop });
|
|
22
27
|
const session = this.api.session.customAppSession(shop);
|
|
23
28
|
return session;
|
|
24
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merchant-custom-app.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/merchant-custom-app.ts"],"sourcesContent":[null],"names":["handleClientErrorFactory","ShopifyError"],"mappings":"
|
|
1
|
+
{"version":3,"file":"merchant-custom-app.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/merchant-custom-app.ts"],"sourcesContent":[null],"names":["getShopFromRequest","handleClientErrorFactory","ShopifyError"],"mappings":";;;;;;;;;MAgBa,kBAAkB,CAAA;AAGnB,IAAA,GAAG;AAMH,IAAA,MAAM;AACN,IAAA,MAAM;AAEhB,IAAA,WAAA,CAAmB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAgC,EAAA;AACrE,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;IAGf,MAAM,sBAAsB,CAAC,OAAgB,EAAA;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE;AAClE,YAAA,IAAI,EAAEA,qCAAkB,CAAC,OAAO,CAAC;AAClC,SAAA,CAAC;;AAGG,IAAA,MAAM,YAAY,CACvB,QAAiB,EACjB,cAA8B,EAAA;AAE9B,QAAA,MAAM,EAAC,IAAI,EAAC,GAAG,cAAc;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uEAAuE,EACvE,EAAC,IAAI,EAAC,CACP;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAEvD,QAAA,OAAO,OAAO;;AAGT,IAAA,iBAAiB,CAAC,OAAgB,EAAA;AACvC,QAAA,OAAOC,0CAAwB,CAAC;YAC9B,OAAO;AACP,YAAA,OAAO,EAAE,OAAO,EAAC,KAAK,EAAiB,KAAI;gBACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AAC/B,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oPAAoP,CACrP;AACD,oBAAA,MAAM,IAAIC,uBAAY,CACpB,8CAA8C,CAC/C;;aAEJ;AACF,SAAA,CAAC;;AAEL;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var shopifyApi = require('@shopify/shopify-api');
|
|
4
4
|
var respondToInvalidSessionToken = require('../../helpers/respond-to-invalid-session-token.js');
|
|
5
|
+
var getShopFromRequest = require('../../helpers/get-shop-from-request.js');
|
|
5
6
|
var invalidateAccessToken = require('../../helpers/invalidate-access-token.js');
|
|
6
7
|
require('isbot');
|
|
7
8
|
require('../../../types.js');
|
|
@@ -25,8 +26,8 @@ class TokenExchangeStrategy {
|
|
|
25
26
|
if (!sessionToken)
|
|
26
27
|
throw new shopifyApi.InvalidJwtError();
|
|
27
28
|
if (!session || !session.isActive(undefined)) {
|
|
28
|
-
logger.info('No valid session found');
|
|
29
|
-
logger.info('Requesting offline access token');
|
|
29
|
+
logger.info('No valid session found', { shop });
|
|
30
|
+
logger.info('Requesting offline access token', { shop });
|
|
30
31
|
const { session: offlineSession } = await this.exchangeToken({
|
|
31
32
|
request,
|
|
32
33
|
sessionToken,
|
|
@@ -36,7 +37,7 @@ class TokenExchangeStrategy {
|
|
|
36
37
|
await config.sessionStorage.storeSession(offlineSession);
|
|
37
38
|
let newSession = offlineSession;
|
|
38
39
|
if (config.useOnlineTokens) {
|
|
39
|
-
logger.info('Requesting online access token');
|
|
40
|
+
logger.info('Requesting online access token', { shop });
|
|
40
41
|
const { session: onlineSession } = await this.exchangeToken({
|
|
41
42
|
request,
|
|
42
43
|
sessionToken,
|
|
@@ -72,7 +73,9 @@ class TokenExchangeStrategy {
|
|
|
72
73
|
request,
|
|
73
74
|
onError: async ({ session, error }) => {
|
|
74
75
|
if (error.response.code === 401) {
|
|
75
|
-
logger.debug('Responding to invalid access token'
|
|
76
|
+
logger.debug('Responding to invalid access token', {
|
|
77
|
+
shop: getShopFromRequest.getShopFromRequest(request),
|
|
78
|
+
});
|
|
76
79
|
await invalidateAccessToken.invalidateAccessToken({ config, api, logger }, session);
|
|
77
80
|
respondToInvalidSessionToken.respondToInvalidSessionToken({
|
|
78
81
|
params: { config, api, logger },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-exchange.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/token-exchange.ts"],"sourcesContent":[null],"names":["InvalidJwtError","RequestedTokenType","handleClientErrorFactory","invalidateAccessToken","respondToInvalidSessionToken","HttpResponseError","triggerAfterAuthHook"],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-exchange.js","sources":["../../../../../../../src/server/authenticate/admin/strategies/token-exchange.ts"],"sourcesContent":[null],"names":["InvalidJwtError","RequestedTokenType","handleClientErrorFactory","getShopFromRequest","invalidateAccessToken","respondToInvalidSessionToken","HttpResponseError","triggerAfterAuthHook"],"mappings":";;;;;;;;;;;;MAyBa,qBAAqB,CAAA;AAGtB,IAAA,GAAG;AAMH,IAAA,MAAM;AACN,IAAA,MAAM;AAEhB,IAAA,WAAA,CAAmB,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAgC,EAAA;AACrE,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGf,IAAA,MAAM,sBAAsB,CAAC,QAAiB;AAE9C,IAAA,MAAM,YAAY,CACvB,OAAgB,EAChB,cAA8B,EAAA;QAE9B,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,IAAI;QAClC,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAC,GAAG,cAAc;AAEpD,QAAA,IAAI,CAAC,YAAY;YAAE,MAAM,IAAIA,0BAAe,EAAE;QAE9C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC5C,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAC,IAAI,EAAC,CAAC;YACtD,MAAM,EAAC,OAAO,EAAE,cAAc,EAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;gBACzD,OAAO;gBACP,YAAY;gBACZ,IAAI;gBACJ,kBAAkB,EAAEC,6BAAkB,CAAC,kBAAkB;AAC1D,aAAA,CAAC;YAEF,MAAM,MAAM,CAAC,cAAe,CAAC,YAAY,CAAC,cAAc,CAAC;YAEzD,IAAI,UAAU,GAAG,cAAc;AAE/B,YAAA,IAAI,MAAM,CAAC,eAAe,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAC,IAAI,EAAC,CAAC;gBACrD,MAAM,EAAC,OAAO,EAAE,aAAa,EAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;oBACxD,OAAO;oBACP,YAAY;oBACZ,IAAI;oBACJ,kBAAkB,EAAEA,6BAAkB,CAAC,iBAAiB;AACzD,iBAAA,CAAC;gBAEF,MAAM,MAAM,CAAC,cAAe,CAAC,YAAY,CAAC,aAAa,CAAC;gBACxD,UAAU,GAAG,aAAa;;AAG5B,YAAA,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;gBAClE,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC9B,aAAA,CAAC;AAEF,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,mBAAmB,CAC5B,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,EACrB,UAAU,EACV,OAAO,EACP,YAAY,CACb;;YACD,OAAO,eAAe,EAAE;AACxB,gBAAA,IAAI,eAAe,YAAY,QAAQ,EAAE;AACvC,oBAAA,MAAM,eAAe;;AAGvB,gBAAA,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC5B,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,UAAU,EAAE,uBAAuB;AACpC,iBAAA,CAAC;;AAGJ,YAAA,OAAO,UAAU;;AAGnB,QAAA,OAAO,OAAQ;;AAGV,IAAA,iBAAiB,CAAC,OAAgB,EAAA;QACvC,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,IAAI;AAClC,QAAA,OAAOC,0CAAwB,CAAC;YAC9B,OAAO;YACP,OAAO,EAAE,OAAO,EAAC,OAAO,EAAE,KAAK,EAAiB,KAAI;gBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AAC/B,oBAAA,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;AACjD,wBAAA,IAAI,EAAEC,qCAAkB,CAAC,OAAO,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,MAAMC,2CAAqB,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,EAAE,OAAO,CAAC;AAE3D,oBAAAC,yDAA4B,CAAC;AAC3B,wBAAA,MAAM,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC;wBAC7B,OAAO;AACR,qBAAA,CAAC;;aAEL;AACF,SAAA,CAAC;;IAGI,MAAM,aAAa,CAAC,EAC1B,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,kBAAkB,GAMnB,EAAA;QACC,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,IAAI;AAElC,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;gBAClC,YAAY;gBACZ,IAAI;gBACJ,kBAAkB;AACnB,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;YACd,IACE,KAAK,YAAYL,0BAAe;iBAC/B,KAAK,YAAYM,4BAAiB;AACjC,oBAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG;oBAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,KAAK,uBAAuB,CAAC,EACzD;AACA,gBAAA,MAAMD,yDAA4B,CAAC;AACjC,oBAAA,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC;oBAC7B,OAAO;AACP,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC;;AAGJ,YAAA,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC5B,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,UAAU,EAAE,uBAAuB;AACpC,aAAA,CAAC;;;IAIE,MAAM,mBAAmB,CAC/B,MAAmB,EACnB,OAAgB,EAChB,OAAgB,EAChB,YAAoB,EAAA;AAEpB,QAAA,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM;AACvB,QAAA,MAAM,MAAM,CAAC,wBAAwB,CAAC,aAAa,CAAC;YAClD,eAAe,EAAE,MAAK;gBACpB,OAAOE,yCAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;aAC5D;AACD,YAAA,UAAU,EAAE,YAAY;AACzB,SAAA,CAAC;;AAEL;;;;"}
|
|
@@ -4,11 +4,13 @@ var types = require('../../types.js');
|
|
|
4
4
|
|
|
5
5
|
async function createOrLoadOfflineSession(shop, { api, config, logger }) {
|
|
6
6
|
if (config.distribution === types.AppDistribution.ShopifyAdmin) {
|
|
7
|
-
logger.debug('Creating custom app session from configured access token'
|
|
7
|
+
logger.debug('Creating custom app session from configured access token', {
|
|
8
|
+
shop,
|
|
9
|
+
});
|
|
8
10
|
return api.session.customAppSession(shop);
|
|
9
11
|
}
|
|
10
12
|
else {
|
|
11
|
-
logger.debug('Loading offline session from session storage');
|
|
13
|
+
logger.debug('Loading offline session from session storage', { shop });
|
|
12
14
|
const offlineSessionId = api.session.getOfflineId(shop);
|
|
13
15
|
const session = await config.sessionStorage.loadSession(offlineSessionId);
|
|
14
16
|
return session;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-or-load-offline-session.js","sources":["../../../../../../src/server/authenticate/helpers/create-or-load-offline-session.ts"],"sourcesContent":[null],"names":["AppDistribution"],"mappings":";;;;AAEO,eAAe,0BAA0B,CAC9C,IAAY,EACZ,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAc,EAAA;IAElC,IAAI,MAAM,CAAC,YAAY,KAAKA,qBAAe,CAAC,YAAY,EAAE;AACxD,QAAA,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC;
|
|
1
|
+
{"version":3,"file":"create-or-load-offline-session.js","sources":["../../../../../../src/server/authenticate/helpers/create-or-load-offline-session.ts"],"sourcesContent":[null],"names":["AppDistribution"],"mappings":";;;;AAEO,eAAe,0BAA0B,CAC9C,IAAY,EACZ,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAc,EAAA;IAElC,IAAI,MAAM,CAAC,YAAY,KAAKA,qBAAe,CAAC,YAAY,EAAE;AACxD,QAAA,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE;YACvE,IAAI;AACL,SAAA,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;;SACpC;QACL,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAC,IAAI,EAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAE1E,QAAA,OAAO,OAAO;;AAElB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-shop-from-request.js","sources":["../../../../../../src/server/authenticate/helpers/get-shop-from-request.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAM,SAAU,kBAAkB,CAAC,OAAgB,EAAA;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAChC,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE;AACtC;;;;"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
async function invalidateAccessToken(params, session) {
|
|
4
4
|
const { logger, config } = params;
|
|
5
|
-
logger.debug(`Invalidating access token for session - ${session.id}
|
|
5
|
+
logger.debug(`Invalidating access token for session - ${session.id}`, {
|
|
6
|
+
shop: session.shop,
|
|
7
|
+
});
|
|
6
8
|
session.accessToken = undefined;
|
|
7
9
|
await config.sessionStorage.storeSession(session);
|
|
8
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalidate-access-token.js","sources":["../../../../../../src/server/authenticate/helpers/invalidate-access-token.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIO,eAAe,qBAAqB,CACzC,MAAmB,EACnB,OAAgB,EAAA;AAEhB,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,CAAC,KAAK,CAAC,CAAA,wCAAA,EAA2C,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"invalidate-access-token.js","sources":["../../../../../../src/server/authenticate/helpers/invalidate-access-token.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIO,eAAe,qBAAqB,CACzC,MAAmB,EACnB,OAAgB,EAAA;AAEhB,IAAA,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;IAE/B,MAAM,CAAC,KAAK,CAAC,CAAA,wCAAA,EAA2C,OAAO,CAAC,EAAE,EAAE,EAAE;QACpE,IAAI,EAAE,OAAO,CAAC,IAAI;AACnB,KAAA,CAAC;AAEF,IAAA,OAAO,CAAC,WAAW,GAAG,SAAS;IAC/B,MAAM,MAAM,CAAC,cAAe,CAAC,YAAY,CAAC,OAAO,CAAC;AACpD;;;;"}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var respondToInvalidSessionToken = require('./respond-to-invalid-session-token.js');
|
|
4
|
+
var getShopFromRequest = require('./get-shop-from-request.js');
|
|
4
5
|
|
|
5
6
|
async function validateSessionToken(params, request, token, { checkAudience = true } = {}) {
|
|
6
7
|
const { api, logger } = params;
|
|
7
|
-
|
|
8
|
+
const shop = getShopFromRequest.getShopFromRequest(request);
|
|
9
|
+
logger.debug('Validating session token', { shop });
|
|
8
10
|
try {
|
|
9
11
|
const payload = await api.session.decodeSessionToken(token, {
|
|
10
12
|
checkAudience,
|
|
11
13
|
});
|
|
12
|
-
logger.debug('Session token is valid', {
|
|
14
|
+
logger.debug('Session token is valid - validated', {
|
|
15
|
+
shop,
|
|
13
16
|
payload: JSON.stringify(payload),
|
|
14
17
|
});
|
|
15
18
|
return payload;
|
|
16
19
|
}
|
|
17
20
|
catch (error) {
|
|
18
|
-
logger.debug(`Failed to validate session token: ${error.message}
|
|
21
|
+
logger.debug(`Failed to validate session token: ${error.message}`, {
|
|
22
|
+
shop,
|
|
23
|
+
});
|
|
19
24
|
throw respondToInvalidSessionToken.respondToInvalidSessionToken({ params, request, retryRequest: true });
|
|
20
25
|
}
|
|
21
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-session-token.js","sources":["../../../../../../src/server/authenticate/helpers/validate-session-token.ts"],"sourcesContent":[null],"names":["respondToInvalidSessionToken"],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-session-token.js","sources":["../../../../../../src/server/authenticate/helpers/validate-session-token.ts"],"sourcesContent":[null],"names":["getShopFromRequest","respondToInvalidSessionToken"],"mappings":";;;;;AAWO,eAAe,oBAAoB,CACxC,MAAmB,EACnB,OAAgB,EAChB,KAAa,EACb,EAAC,aAAa,GAAG,IAAI,KAAiC,EAAE,EAAA;AAExD,IAAA,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,MAAM;AAC5B,IAAA,MAAM,IAAI,GAAGA,qCAAkB,CAAC,OAAO,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAC,IAAI,EAAC,CAAC;AAEhD,IAAA,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC1D,aAAa;AACd,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;YACjD,IAAI;AACJ,YAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,OAAO,OAAO;;IACd,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAC,OAAO,EAAE,EAAE;YACjE,IAAI;AACL,SAAA,CAAC;AAEF,QAAA,MAAMC,yDAA4B,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC;;AAE7E;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sources":["../../../../../../src/server/authenticate/login/login.ts"],"sourcesContent":[null],"names":["LoginErrorType","redirect"],"mappings":";;;;;AAIM,SAAU,YAAY,CAAC,MAAmB,EAAA;IAC9C,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAEpC,IAAA,OAAO,eAAe,KAAK,CAAC,OAAgB,EAAA;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;QAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1C,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,IAAI,GACR,SAAS,IAAK,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAY;QAEjE,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAC,CAAC;AAC9C,YAAA,OAAO,EAAC,IAAI,EAAEA,oBAAc,CAAC,WAAW,EAAC;;QAG3C,MAAM,mBAAmB,GAAG;AACzB,aAAA,OAAO,CAAC,cAAc,EAAE,EAAE;AAC1B,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,cAAc,GAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"login.js","sources":["../../../../../../src/server/authenticate/login/login.ts"],"sourcesContent":[null],"names":["LoginErrorType","redirect"],"mappings":";;;;;AAIM,SAAU,YAAY,CAAC,MAAmB,EAAA;IAC9C,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAEpC,IAAA,OAAO,eAAe,KAAK,CAAC,OAAgB,EAAA;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;QAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1C,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,IAAI,GACR,SAAS,IAAK,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAY;QAEjE,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAC,CAAC;AAC9C,YAAA,OAAO,EAAC,IAAI,EAAEA,oBAAc,CAAC,WAAW,EAAC;;QAG3C,MAAM,mBAAmB,GAAG;AACzB,aAAA,OAAO,CAAC,cAAc,EAAE,EAAE;AAC1B,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,cAAc,GAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;cACnB,CAAG,EAAA,mBAAmB,CAAgB,cAAA;cACtC,mBAAmB;QACzB,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;QAE5D,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAC,CAAC;AAC9C,YAAA,OAAO,EAAC,IAAI,EAAEA,oBAAc,CAAC,WAAW,EAAC;;AAG3C,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,CAAC,MAAM,CAAA,EAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAS,MAAA,EAAA,aAAa,EAAE;QAE5E,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,aAAa,CAAC;QAClE,MAAM,WAAW,GAAG,CAAW,QAAA,EAAA,SAAS,4BAA4B,MAAM,CAAC,MAAM,CAAA,CAAE;QAEnF,MAAM,aAAa,GACjB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,gCAAgC;QACxE,MAAM,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ;AAE1D,QAAA,MAAM,CAAC,IAAI,CAAC,CAAgC,6BAAA,EAAA,WAAW,EAAE,EAAE;AACzD,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA,CAAC;AAEF,QAAA,MAAMC,sBAAQ,CAAC,WAAW,CAAC;AAC7B,KAAC;AACH;;;;"}
|
|
@@ -6,16 +6,16 @@ var factory$1 = require('../../../clients/storefront/factory.js');
|
|
|
6
6
|
function authenticateAppProxyFactory(params) {
|
|
7
7
|
const { api, config, logger } = params;
|
|
8
8
|
return async function authenticate(request) {
|
|
9
|
-
logger.info('Authenticating app proxy request');
|
|
10
9
|
const url = new URL(request.url);
|
|
10
|
+
const shop = url.searchParams.get('shop');
|
|
11
|
+
logger.info('Authenticating app proxy request', { shop });
|
|
11
12
|
if (!(await validateAppProxyHmac(params, url))) {
|
|
12
|
-
logger.info('App proxy request has invalid signature');
|
|
13
|
+
logger.info('App proxy request has invalid signature', { shop });
|
|
13
14
|
throw new Response(undefined, {
|
|
14
15
|
status: 400,
|
|
15
16
|
statusText: 'Bad Request',
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
|
-
const shop = url.searchParams.get('shop');
|
|
19
19
|
const sessionId = api.session.getOfflineId(shop);
|
|
20
20
|
const session = await config.sessionStorage.loadSession(sessionId);
|
|
21
21
|
if (!session) {
|
|
@@ -83,7 +83,8 @@ async function validateAppProxyHmac(params, url) {
|
|
|
83
83
|
return isValid;
|
|
84
84
|
}
|
|
85
85
|
catch (error) {
|
|
86
|
-
|
|
86
|
+
const shop = url.searchParams.get('shop');
|
|
87
|
+
logger.info(error.message, { shop });
|
|
87
88
|
throw new Response(undefined, { status: 400, statusText: 'Bad Request' });
|
|
88
89
|
}
|
|
89
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.js","sources":["../../../../../../../src/server/authenticate/public/appProxy/authenticate.ts"],"sourcesContent":[null],"names":["adminClientFactory","storefrontClientFactory"],"mappings":";;;;;AAaM,SAAU,2BAA2B,CAGzC,MAAmB,EAAA;IACnB,MAAM,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,MAAM;AAEpC,IAAA,OAAO,eAAe,YAAY,CAChC,OAAO,EAAA;
|
|
1
|
+
{"version":3,"file":"authenticate.js","sources":["../../../../../../../src/server/authenticate/public/appProxy/authenticate.ts"],"sourcesContent":[null],"names":["adminClientFactory","storefrontClientFactory"],"mappings":"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"}
|