23 lines
574 B
TypeScript
23 lines
574 B
TypeScript
export function getCSRFToken() {
|
|
if (typeof document === "undefined") {
|
|
return undefined;
|
|
}
|
|
|
|
const token = document.querySelector<HTMLMetaElement>('meta[name="csrf-token"]')?.content;
|
|
return token || undefined;
|
|
}
|
|
|
|
export function appendCSRFToken(formData: FormData): FormData {
|
|
const token = getCSRFToken();
|
|
if (token) {
|
|
formData.set("csrf", token);
|
|
}
|
|
|
|
return formData;
|
|
}
|
|
|
|
export function csrfRequestHeaders(headers: HeadersInit = {}): HeadersInit {
|
|
const token = getCSRFToken();
|
|
return token ? { ...headers, "x-csrf-token": token } : headers;
|
|
}
|