feat(auth): add abort controller for refresh interruption
All checks were successful
Client CMS Check Build (NixCN CMS) TeamCity build finished
Backend Check Build (NixCN CMS) TeamCity build finished

Signed-off-by: Noa Virellia <noa@requiem.garden>
This commit is contained in:
2026-02-07 17:12:12 +08:00
parent eddc23a2e8
commit cd612ab24d

View File

@@ -35,16 +35,20 @@ export function clearTokens() {
removeRefreshToken(); removeRefreshToken();
} }
const refreshTokenAbortController = new AbortController();
export async function doRefreshToken(refreshToken: string): Promise<ServiceAuthTokenResponse | undefined> { export async function doRefreshToken(refreshToken: string): Promise<ServiceAuthTokenResponse | undefined> {
const { data } = await postAuthRefresh({ const { data } = await postAuthRefresh({
body: { body: {
refresh_token: refreshToken, refresh_token: refreshToken,
}, },
signal: refreshTokenAbortController.signal,
}); });
return data?.data; return data?.data;
} }
export function logout(message: string = '已登出') { export function logout(message: string = '已登出') {
refreshTokenAbortController.abort();
clearTokens(); clearTokens();
void router.navigate({ to: '/authorize' }).then(() => { void router.navigate({ to: '/authorize' }).then(() => {
toast.info(message); toast.info(message);