diff --git a/surfsense_web/lib/apis/base-api.service.ts b/surfsense_web/lib/apis/base-api.service.ts index 0f3c17d4e..1a2921b5d 100644 --- a/surfsense_web/lib/apis/base-api.service.ts +++ b/surfsense_web/lib/apis/base-api.service.ts @@ -21,18 +21,23 @@ export type RequestOptions = { }; class BaseApiService { - bearerToken: string; baseUrl: string; noAuthEndpoints: string[] = ["/auth/jwt/login", "/auth/register", "/auth/refresh"]; // Add more endpoints as needed - constructor(bearerToken: string, baseUrl: string) { - this.bearerToken = bearerToken; + // Use a getter to always read fresh token from localStorage + // This ensures the token is always up-to-date after login/logout + get bearerToken(): string { + return typeof window !== "undefined" ? getBearerToken() || "" : ""; + } + + constructor(baseUrl: string) { this.baseUrl = baseUrl; } - setBearerToken(bearerToken: string) { - this.bearerToken = bearerToken; + // Keep for backward compatibility, but token is now always read from localStorage + setBearerToken(_bearerToken: string) { + // No-op: token is now always read fresh from localStorage via the getter } async request( @@ -294,6 +299,5 @@ class BaseApiService { } export const baseApiService = new BaseApiService( - typeof window !== "undefined" ? getBearerToken() || "" : "", process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL || "" );