Skip to content

Commit aaea28b

Browse files
committed
backward compat with http-header token authz
1 parent 8b06801 commit aaea28b

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

src/createApolloClient.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { InMemoryCache, ApolloClient } from '@apollo/client';
22

3-
const createClient = ({ url, tenant }) => (new ApolloClient({
4-
uri: `${url}/graphql`,
3+
const createClient = ({ tenant, token, url }) => (new ApolloClient({
4+
cache: new InMemoryCache(),
55
credentials: 'include',
66
headers: {
77
'X-Okapi-Tenant': tenant,
8+
...(token && { 'X-Okapi-Token': token }),
89
},
9-
cache: new InMemoryCache(),
10+
uri: `${url}/graphql`,
1011
}));
1112

1213
export default createClient;

src/useOkapiKy.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import ky from 'ky';
22
import { useStripes } from './StripesContext';
33

44
export default ({ tenant } = {}) => {
5-
const { locale = 'en', timeout = 30000, tenant: currentTenant, url } = useStripes().okapi;
5+
const { locale = 'en', timeout = 30000, tenant: currentTenant, token, url } = useStripes().okapi;
66

77
return ky.create({
88
credentials: 'include',
@@ -11,6 +11,9 @@ export default ({ tenant } = {}) => {
1111
request => {
1212
request.headers.set('Accept-Language', locale);
1313
request.headers.set('X-Okapi-Tenant', tenant ?? currentTenant);
14+
if (token) {
15+
request.headers.set('X-Okapi-Token', token);
16+
}
1417
}
1518
]
1619
},

src/withOkapiKy.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,33 @@ const withOkapiKy = (WrappedComponent) => {
88
static propTypes = {
99
stripes: PropTypes.shape({
1010
okapi: PropTypes.shape({
11+
locale: PropTypes.string,
1112
tenant: PropTypes.string.isRequired,
12-
url: PropTypes.string.isRequired,
1313
timeout: PropTypes.number,
14-
locale: PropTypes.string,
14+
token: PropTypes.string,
15+
url: PropTypes.string.isRequired,
1516
}).isRequired,
1617
}).isRequired,
1718
};
1819

1920
constructor(props) {
2021
super();
21-
const { tenant, url, timeout = 30000, locale = 'en' } = props.stripes.okapi;
22+
const { tenant, token, url, timeout = 30000, locale = 'en' } = props.stripes.okapi;
2223
this.okapiKy = ky.create({
2324
credentials: 'include',
24-
prefixUrl: url,
2525
hooks: {
2626
beforeRequest: [
2727
request => {
28-
request.headers.set('X-Okapi-Tenant', tenant);
2928
request.headers.set('Accept-Language', locale);
29+
request.headers.set('X-Okapi-Tenant', tenant);
30+
if (token) {
31+
request.headers.set('X-Okapi-Token', token);
32+
}
3033
}
3134
]
3235
},
3336
mode: 'cors',
37+
prefixUrl: url,
3438
retry: 0,
3539
timeout,
3640
});

0 commit comments

Comments
 (0)