diff options
Diffstat (limited to 'web/frontend/hooks/useAuthenticatedFetch.js')
| -rw-r--r-- | web/frontend/hooks/useAuthenticatedFetch.js | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/web/frontend/hooks/useAuthenticatedFetch.js b/web/frontend/hooks/useAuthenticatedFetch.js deleted file mode 100644 index e5f36a8..0000000 --- a/web/frontend/hooks/useAuthenticatedFetch.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * A hook that returns an auth-aware fetch function. - * @desc The returned fetch function that matches the browser's fetch API - * See: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API - * It will provide the following functionality: - * - * 1. Add a `X-Shopify-Access-Token` header to the request. - * 2. Check response for `X-Shopify-API-Request-Failure-Reauthorize` header. - * 3. Redirect the user to the reauthorization URL if the header is present. - * - * @returns {Function} fetch function - */ -function useAuthenticatedFetch() { - const app = useAppBridge(); - const fetchFunction = authenticatedFetch(app); - - return async (uri, options) => { - const response = await fetchFunction(uri, options); - checkHeadersForReauthorization(response.headers, app); - return response; - }; -} - -function checkHeadersForReauthorization(headers, app) { - if (headers.get("X-Shopify-API-Request-Failure-Reauthorize") === "1") { - const authUrlHeader = - headers.get("X-Shopify-API-Request-Failure-Reauthorize-Url") || - `/api/auth`; - - const redirect = Redirect.create(app); - redirect.dispatch( - Redirect.Action.REMOTE, - authUrlHeader.startsWith("/") - ? `https://${window.location.host}${authUrlHeader}` - : authUrlHeader - ); - } -} |