'use client'; // Helper function to verify authentication with the local API export async function verifyAuth(token: string) { try { let authEndpoint; // Check if we're running in a browser environment if (typeof window !== 'undefined') { // Use the current origin in browser environments const origin = window.location.origin; authEndpoint = new URL('/api/auth/me', origin).toString(); console.log(`Using browser origin for auth endpoint: ${authEndpoint}`); } else { // For SSR or when window is not available (e.g. in Docker container) // Use the environment variable if available if (process.env.SERVER_API_URL) { authEndpoint = `${process.env.SERVER_API_URL}/auth/me`; console.log(`Using SERVER_API_URL for auth endpoint: ${authEndpoint}`); } else { // Fallback for local development const protocol = (process.env.USE_HTTPS === 'false') ? 'http' : 'https'; const port = process.env.INTERNAL_API_PORT || '3000'; authEndpoint = `${protocol}://localhost:${port}/api/auth/me`; console.log(`Using fallback for auth endpoint: ${authEndpoint}`); } } console.log(`Verifying authentication with endpoint: ${authEndpoint}`); const response = await fetch(authEndpoint, { method: "GET", headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}`, }, // Prevent caching of auth requests cache: 'no-store' }); if (!response.ok) { console.error(`Auth verification failed: ${response.status}`); return false; } return await response.json(); } catch (error) { console.error("Authentication verification failed:", error); console.error("Error details:", error instanceof Error ? error.message : 'Unknown error'); return false; } }