......
This commit is contained in:
@@ -3,11 +3,30 @@
|
|||||||
// Helper function to verify authentication with the local API
|
// Helper function to verify authentication with the local API
|
||||||
export async function verifyAuth(token: string) {
|
export async function verifyAuth(token: string) {
|
||||||
try {
|
try {
|
||||||
// Use a properly formed URL with origin
|
let authEndpoint;
|
||||||
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
||||||
const authEndpoint = new URL('/api/auth/me', origin).toString();
|
|
||||||
|
|
||||||
console.log(`Verifying auth with ${authEndpoint} using token: ${token.substring(0, 10)}...`);
|
// 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, {
|
const response = await fetch(authEndpoint, {
|
||||||
method: "GET",
|
method: "GET",
|
||||||
|
|||||||
@@ -5,12 +5,21 @@ import { redirect } from 'next/navigation';
|
|||||||
* Gets the base URL for server API requests with proper fallbacks
|
* Gets the base URL for server API requests with proper fallbacks
|
||||||
*/
|
*/
|
||||||
function getBaseUrl() {
|
function getBaseUrl() {
|
||||||
|
// First check for the specific server API URL environment variable
|
||||||
|
if (process.env.SERVER_API_URL) {
|
||||||
|
console.log(`Using SERVER_API_URL: ${process.env.SERVER_API_URL}`);
|
||||||
|
return process.env.SERVER_API_URL;
|
||||||
|
}
|
||||||
|
|
||||||
// For server components, we normally would use environment variables
|
// For server components, we normally would use environment variables
|
||||||
// But we need to be careful with how they're accessed
|
// But we need to be careful with how they're accessed
|
||||||
|
|
||||||
// Try to get the API URL from environment variables
|
// Try to get the API URL from environment variables
|
||||||
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
|
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
|
||||||
|
|
||||||
|
// Check if we're running in a container/production environment
|
||||||
|
const inContainer = process.env.NODE_ENV === 'production';
|
||||||
|
|
||||||
// We need to get the host from somewhere to construct the URL
|
// We need to get the host from somewhere to construct the URL
|
||||||
// In production, we can rely on the VERCEL_URL or similar
|
// In production, we can rely on the VERCEL_URL or similar
|
||||||
if (process.env.VERCEL_URL) {
|
if (process.env.VERCEL_URL) {
|
||||||
@@ -23,12 +32,21 @@ function getBaseUrl() {
|
|||||||
if (apiUrl.startsWith('http')) {
|
if (apiUrl.startsWith('http')) {
|
||||||
return apiUrl;
|
return apiUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For container environments, use the internal port
|
||||||
|
const port = process.env.INTERNAL_API_PORT || '3000';
|
||||||
|
const protocol = (process.env.USE_HTTPS === 'false') ? 'http' : 'https';
|
||||||
|
|
||||||
// Otherwise, it's likely a relative path like /api
|
// Otherwise, it's likely a relative path like /api
|
||||||
return `http://localhost:3000${apiUrl.startsWith('/') ? apiUrl : `/${apiUrl}`}`;
|
// Use localhost with the correct port for container environments
|
||||||
|
return `${protocol}://localhost:${port}${apiUrl.startsWith('/') ? apiUrl : `/${apiUrl}`}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Last resort fallback for development
|
// Last resort fallback
|
||||||
return 'http://localhost:3000/api';
|
// Use http for container environment, https for external services
|
||||||
|
const protocol = (process.env.USE_HTTPS === 'false') ? 'http' : 'https';
|
||||||
|
const port = process.env.INTERNAL_API_PORT || '3000';
|
||||||
|
return `${protocol}://localhost:${port}/api`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user