Skip to content

Commit dd1e7f4

Browse files
authored
docs: use function for getting headers (#1228)
1 parent fce0056 commit dd1e7f4

File tree

1 file changed

+33
-39
lines changed

1 file changed

+33
-39
lines changed

admin/authentication-support.md

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,57 +16,51 @@ import parseHydraDocumentation from "@api-platform/api-doc-parser/lib/hydra/pars
1616
import authProvider from "./authProvider";
1717

1818
const entrypoint = process.env.REACT_APP_API_ENTRYPOINT;
19-
const fetchHeaders = () => ({
20-
Authorization: `Bearer ${window.localStorage.getItem("token")}`,
21-
});
19+
const getHeaders = () => localStorage.getItem("token") ? {
20+
Authorization: `Bearer ${localStorage.getItem("token")}`,
21+
} : {};
2222
const fetchHydra = (url, options = {}) =>
23-
localStorage.getItem("token")
24-
? baseFetchHydra(url, {
25-
...options,
26-
headers: new Headers(fetchHeaders()),
27-
})
28-
: baseFetchHydra(url, options);
23+
baseFetchHydra(url, {
24+
...options,
25+
headers: getHeaders,
26+
});
2927
const RedirectToLogin = () => {
3028
const introspect = useIntrospection();
3129

32-
if (localStorage.getItem('token')) {
30+
if (localStorage.getItem("token")) {
3331
introspect();
3432
return <></>;
3533
}
36-
return <Redirect to='/login' />;
37-
}
38-
const apiDocumentationParser = (entrypoint) =>
39-
parseHydraDocumentation(
40-
entrypoint,
41-
localStorage.getItem("token")
42-
? { headers: new Headers(fetchHeaders()) }
43-
: {}
44-
).then(
45-
({ api }) => ({ api }),
46-
(result) => {
47-
if (result.status === 401) {
48-
// Prevent infinite loop if the token is expired
49-
localStorage.removeItem("token");
34+
return <Redirect to="/login" />;
35+
};
36+
const apiDocumentationParser = async (entrypoint) => {
37+
try {
38+
const { api } = await parseHydraDocumentation(entrypoint, { headers: getHeaders });
39+
return { api };
40+
} catch (result) {
41+
if (result.status === 401) {
42+
// Prevent infinite loop if the token is expired
43+
localStorage.removeItem("token");
5044

51-
return Promise.resolve({
52-
api: result.api,
53-
customRoutes: [
54-
<Route path="/" component={RedirectToLogin} />
55-
],
56-
});
57-
}
45+
return {
46+
api: result.api,
47+
customRoutes: [
48+
<Route path="/" component={RedirectToLogin} />
49+
],
50+
};
51+
}
5852

59-
return Promise.reject(result);
60-
},
61-
);
53+
throw result;
54+
}
55+
};
6256
const dataProvider = baseHydraDataProvider(entrypoint, fetchHydra, apiDocumentationParser);
6357

6458
export default () => (
65-
<HydraAdmin
66-
dataProvider={ dataProvider }
67-
authProvider={ authProvider }
68-
entrypoint={ entrypoint }
69-
/>
59+
<HydraAdmin
60+
dataProvider={ dataProvider }
61+
authProvider={ authProvider }
62+
entrypoint={ entrypoint }
63+
/>
7064
);
7165
```
7266

0 commit comments

Comments
 (0)