Commit 091537b9 authored by tom's avatar tom

pass csrf token in header instead of body

parent b242508b
...@@ -13,10 +13,12 @@ export default function fetchFactory( ...@@ -13,10 +13,12 @@ export default function fetchFactory(
apiEndpoint: string = appConfig.api.endpoint, apiEndpoint: string = appConfig.api.endpoint,
) { ) {
return function fetch(path: string, init?: RequestInit): Promise<Response> { return function fetch(path: string, init?: RequestInit): Promise<Response> {
const csrfToken = _req.headers['x-csrf-token']?.toString();
const headers = { const headers = {
accept: 'application/json', accept: 'application/json',
'content-type': 'application/json', 'content-type': 'application/json',
cookie: `${ cookies.NAMES.API_TOKEN }=${ _req.cookies[cookies.NAMES.API_TOKEN] }`, cookie: `${ cookies.NAMES.API_TOKEN }=${ _req.cookies[cookies.NAMES.API_TOKEN] }`,
...(csrfToken ? { 'x-csrf-token': csrfToken } : {}),
}; };
const url = new URL(path, apiEndpoint); const url = new URL(path, apiEndpoint);
......
...@@ -20,9 +20,13 @@ export default function useFetch() { ...@@ -20,9 +20,13 @@ export default function useFetch() {
return React.useCallback(<Success, Error>(path: string, params?: Params): Promise<Success | ResourceError<Error>> => { return React.useCallback(<Success, Error>(path: string, params?: Params): Promise<Success | ResourceError<Error>> => {
const reqParams = { const reqParams = {
...params, ...params,
body: params?.method && ![ 'GET', 'HEAD' ].includes(params.method) ? body: params?.method && params?.body && ![ 'GET', 'HEAD' ].includes(params.method) ?
JSON.stringify({ ...params?.body, _csrf_token: token }) : JSON.stringify(params.body) :
undefined, undefined,
headers: {
...params?.headers,
...(token ? { 'x-csrf-token': token } : {}),
},
}; };
return fetch(path, reqParams).then(response => { return fetch(path, reqParams).then(response => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment