fix(auth): align session lifecycle with Keycloak
This commit is contained in:
@@ -2,10 +2,27 @@ import { create } from "zustand";
|
||||
|
||||
interface AuthState {
|
||||
accessToken: string | null;
|
||||
sessionExpired: boolean;
|
||||
sessionExpiryReason: "refresh_failed" | "session_max_age" | "unauthorized" | null;
|
||||
setAccessToken: (token: string | null) => void;
|
||||
markSessionExpired: (
|
||||
reason: Exclude<AuthState["sessionExpiryReason"], null>,
|
||||
) => void;
|
||||
clearSessionExpired: () => void;
|
||||
}
|
||||
|
||||
export const useAuthStore = create<AuthState>((set) => ({
|
||||
accessToken: null,
|
||||
sessionExpired: false,
|
||||
sessionExpiryReason: null,
|
||||
setAccessToken: (token) => set({ accessToken: token }),
|
||||
markSessionExpired: (reason) => set({
|
||||
accessToken: null,
|
||||
sessionExpired: true,
|
||||
sessionExpiryReason: reason,
|
||||
}),
|
||||
clearSessionExpired: () => set({
|
||||
sessionExpired: false,
|
||||
sessionExpiryReason: null,
|
||||
}),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user