fix: proxy API through nginx to fix cross-domain cookie issues

Brave and other privacy-focused browsers block third-party cookies.
Instead of cross-domain requests from app.thenetwork to api.thenetwork,
nginx now proxies /api/* to the backend, making everything same-origin.
This commit is contained in:
2026-01-30 04:10:56 +00:00
parent 1da92bac58
commit 4d684a9d74
2 changed files with 14 additions and 6 deletions

View File

@@ -4,6 +4,16 @@ server {
root /usr/share/nginx/html; root /usr/share/nginx/html;
index index.html; index index.html;
# Proxy API requests to backend (same-origin = no cookie issues in Brave etc.)
location /api/ {
proxy_pass https://api.thenetwork.donovankelly.xyz/api/;
proxy_set_header Host api.thenetwork.donovankelly.xyz;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_ssl_server_name on;
}
location / { location / {
try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html;
} }

View File

@@ -1,12 +1,10 @@
import type { Profile, Client, ClientCreate, ClientNote, Event, EventCreate, Email, EmailGenerate, User, Invite, ActivityItem, InsightsData, ImportPreview, ImportResult, NetworkMatch, NetworkStats, Notification, Interaction, BulkEmailResult, EmailTemplate, EmailTemplateCreate, ClientSegment, SegmentFilters, FilterOptions, AuditLogsResponse, MeetingPrep, CommunicationStyle } from '@/types'; import type { Profile, Client, ClientCreate, ClientNote, Event, EventCreate, Email, EmailGenerate, User, Invite, ActivityItem, InsightsData, ImportPreview, ImportResult, NetworkMatch, NetworkStats, Notification, Interaction, BulkEmailResult, EmailTemplate, EmailTemplateCreate, ClientSegment, SegmentFilters, FilterOptions, AuditLogsResponse, MeetingPrep, CommunicationStyle } from '@/types';
const API_BASE = import.meta.env.PROD // Always use same-origin paths — nginx proxies /api/* to the backend
? 'https://api.thenetwork.donovankelly.xyz/api' // This avoids cross-domain cookie issues in Brave and other privacy browsers
: '/api'; const API_BASE = '/api';
const AUTH_BASE = import.meta.env.PROD const AUTH_BASE = '';
? 'https://api.thenetwork.donovankelly.xyz'
: '';
const TOKEN_KEY = 'network-auth-token'; const TOKEN_KEY = 'network-auth-token';