summaryrefslogtreecommitdiff
path: root/hooks/useAuthenticatedFetch.js
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-09-18 21:34:33 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-09-18 21:34:33 +0800
commit5f40484088e509e49675813c34be3b53998514ea (patch)
tree2a8673652132ccdba2d75c1c3c63da16fe916cdc /hooks/useAuthenticatedFetch.js
parent023d6464cbf37774ea93dd950bda9350179dfab0 (diff)
authenticatedFetch that doesn't use 'use'
Diffstat (limited to 'hooks/useAuthenticatedFetch.js')
-rw-r--r--hooks/useAuthenticatedFetch.js38
1 files changed, 0 insertions, 38 deletions
diff --git a/hooks/useAuthenticatedFetch.js b/hooks/useAuthenticatedFetch.js
deleted file mode 100644
index e5f36a8..0000000
--- a/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
- );
- }
-}