From 5f40484088e509e49675813c34be3b53998514ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Sun, 18 Sep 2022 21:34:33 +0800 Subject: authenticatedFetch that doesn't use 'use' --- hooks/authenticatedFetch.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 hooks/authenticatedFetch.js (limited to 'hooks/authenticatedFetch.js') diff --git a/hooks/authenticatedFetch.js b/hooks/authenticatedFetch.js new file mode 100644 index 0000000..4b57ff7 --- /dev/null +++ b/hooks/authenticatedFetch.js @@ -0,0 +1,25 @@ +function authenticatedFetch(uri, options) { + var AppBridge = window['app-bridge']; + var app = AppBridge.createApp({ + apiKey: '', + host: '' + }); + var fetchFunction = window['app-bridge-utils'].authenticatedFetch(app); + return async (uri, options) => { + var response = await fetchFunction(uri, options); + var headers = response.headers; + if (headers.get("X-Shopify-API-Request-Failure-Reauthorize") + === "1") { + var authUrlHeader = headers.get( + "X-Shopify-API-Request-Failure-Reauthorize-Url") + || `/api/auth`; + var Redirect = AppBridge.actions.Redirect; + Redirect.create(app).dispatch(Redirect.Action.REMOTE, + authUrlHeader.startsWith("/") + ? `https://${window.location.host}${authUrlHeader}` + : authUrlHeader + ); + } + return response; + }; +} -- cgit v1.2.3