fix: keep session when refresh fails on network error or 5xx (WealthLedger/frontend#97)
This commit was merged in pull request #100.
This commit is contained in:
@@ -32,6 +32,10 @@ type AuthHandlers = {
|
||||
clear: () => void;
|
||||
generation?: () => number;
|
||||
refresh: () => Promise<boolean>;
|
||||
/**
|
||||
True after a refresh failed transiently (network/5xx): the session is not proven gone.
|
||||
*/
|
||||
unavailable?: () => boolean;
|
||||
};
|
||||
|
||||
type ReadAttempt = {
|
||||
@@ -100,7 +104,8 @@ async function authenticatedFetch(request: Request): Promise<Response> {
|
||||
if (!isCurrent()) throw new DOMException("Session changed", "AbortError");
|
||||
|
||||
if (!(await sessionState.handlers.refresh())) {
|
||||
if (isCurrent()) sessionState.handlers.clear();
|
||||
if (isCurrent() && !sessionState.handlers.unavailable?.())
|
||||
sessionState.handlers.clear();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user