mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 23:07:28 +08:00
DEV: Ensure only one csrftoken request is running simultaneously (#31390)
Before this, triggering two ajax requests close together would 'race' to create a csrf-token, and only one would succeed
This commit is contained in:
@ -45,10 +45,16 @@ function handleRedirect(xhr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let activeCsrfRequest;
|
||||||
|
|
||||||
export function updateCsrfToken() {
|
export function updateCsrfToken() {
|
||||||
return ajax("/session/csrf").then((result) => {
|
if (!activeCsrfRequest) {
|
||||||
Session.currentProp("csrfToken", result.csrf);
|
activeCsrfRequest = ajax("/session/csrf")
|
||||||
});
|
.then((result) => Session.currentProp("csrfToken", result.csrf))
|
||||||
|
.finally(() => (activeCsrfRequest = null));
|
||||||
|
}
|
||||||
|
|
||||||
|
return activeCsrfRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user