Skip to content

Commit ee2d499

Browse files
committed
Fix Token and remove debuging
1 parent cfff8be commit ee2d499

File tree

7 files changed

+30
-57
lines changed

7 files changed

+30
-57
lines changed

server/db/flights.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,24 @@ export async function validateAcarsAccess(sessionId, flightId, acarsToken) {
3737
);
3838

3939
if (result.rows.length === 0) {
40-
return false;
40+
return { valid: false };
4141
}
4242

43-
return result.rows[0].acars_token === acarsToken;
43+
const isValid = result.rows[0].acars_token === acarsToken;
44+
45+
if (!isValid) {
46+
return { valid: false };
47+
}
48+
49+
const sessionResult = await flightsPool.query(
50+
`SELECT access_id FROM sessions WHERE session_id = $1`,
51+
[sessionId]
52+
);
53+
54+
return {
55+
valid: true,
56+
accessId: sessionResult.rows[0]?.access_id || null
57+
};
4458
}
4559

4660
export async function getFlightsBySessionWithTime(sessionId, hoursBack = 2) {

server/middleware/sessionAccess.js

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import pool from '../db/connections/connection.js';
22

33
export async function validateSessionAccess(sessionId, accessId) {
4-
console.log(`[validateSessionAccess] Input - SessionID: "${sessionId}", AccessID: "${accessId}"`);
5-
64
if (!sessionId || !accessId) {
7-
console.log(`[validateSessionAccess] Validation failed - Missing parameters`);
85
return false;
96
}
107

@@ -14,27 +11,9 @@ export async function validateSessionAccess(sessionId, accessId) {
1411
[sessionId, accessId]
1512
);
1613

17-
console.log(`[validateSessionAccess] Query result - rowCount: ${result.rowCount}, rows:`, result.rows);
18-
19-
if (result.rowCount > 0) {
20-
console.log(`[validateSessionAccess] ✓ Validation successful`);
21-
return true;
22-
} else {
23-
// Check if session exists with any accessId
24-
const sessionCheck = await pool.query(
25-
'SELECT session_id, access_id FROM sessions WHERE session_id = $1',
26-
[sessionId]
27-
);
28-
29-
if (sessionCheck.rowCount > 0) {
30-
console.log(`[validateSessionAccess] ✗ Session exists but accessId mismatch. Expected: "${sessionCheck.rows[0].access_id}", Got: "${accessId}"`);
31-
} else {
32-
console.log(`[validateSessionAccess] ✗ Session not found in database`);
33-
}
34-
return false;
35-
}
14+
return result.rowCount > 0;
3615
} catch (error) {
37-
console.error('[validateSessionAccess] Database error:', error);
16+
console.error('Session access validation error:', error);
3817
return false;
3918
}
4019
}

server/routes/flights.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ router.get('/:sessionId/:flightId/validate-acars', async (req, res) => {
8686
return res.status(400).json({ valid: false, error: 'Missing access token' });
8787
}
8888

89-
const isValid = await validateAcarsAccess(sessionId, flightId, acarsToken);
90-
res.json({ valid: isValid });
89+
const result = await validateAcarsAccess(sessionId, flightId, acarsToken);
90+
res.json(result);
9191
} catch (error) {
9292
res.status(500).json({ valid: false, error: 'Validation failed' });
9393
}
@@ -102,8 +102,8 @@ router.post('/acars/active', async (req, res) => {
102102
return res.status(400).json({ error: 'Missing required fields' });
103103
}
104104

105-
const isValid = await validateAcarsAccess(sessionId, flightId, acarsToken);
106-
if (!isValid) {
105+
const result = await validateAcarsAccess(sessionId, flightId, acarsToken);
106+
if (!result.valid) {
107107
return res.status(403).json({ error: 'Invalid ACARS token' });
108108
}
109109

server/websockets/flightsWebsocket.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ export function setupFlightsWebsocket(httpServer) {
2222
const sessionId = socket.handshake.query.sessionId;
2323
const accessId = socket.handshake.query.accessId;
2424

25-
console.log(`[Flights Socket] Connection attempt - SessionID: "${sessionId || 'missing'}", AccessID: "${accessId || 'missing'}", Socket ID: ${socket.id}`);
26-
2725
if (!sessionId) {
28-
console.warn(`[Flights Socket] Rejected connection ${socket.id} - Missing sessionId`);
2926
socket.disconnect(true);
3027
return;
3128
}
@@ -34,15 +31,13 @@ export function setupFlightsWebsocket(httpServer) {
3431
if (accessId) {
3532
const valid = await validateSessionAccess(sessionId, accessId);
3633
if (!valid) {
37-
console.warn(`[Flights Socket] Rejected connection ${socket.id} - Invalid session access for sessionId: ${sessionId}`);
3834
socket.disconnect(true);
3935
return;
4036
}
4137
role = 'controller';
4238
}
4339
socket.data.role = role;
4440

45-
console.log(`[Flights Socket] Connection accepted - SessionID: ${sessionId}, Role: ${role}, Socket ID: ${socket.id}`);
4641
socket.join(sessionId);
4742

4843
socket.on('updateFlight', async ({ flightId, updates }) => {
@@ -233,9 +228,7 @@ export function setupFlightsWebsocket(httpServer) {
233228
}
234229
});
235230

236-
socket.on('disconnect', (reason) => {
237-
console.log(`[Flights Socket] Disconnected - SessionID: ${sessionId}, Socket ID: ${socket.id}, Reason: ${reason}`);
238-
});
231+
socket.on('disconnect', () => {});
239232
});
240233

241234
return io;

src/pages/ACARS.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export default function ACARS() {
3838
const [activeSessions, setActiveSessions] = useState<OverviewSession[]>([]);
3939
const [error, setError] = useState<string | null>(null);
4040
const [pdcRequested, setPdcRequested] = useState(false);
41+
const [sessionAccessId, setSessionAccessId] = useState<string | null>(null);
4142

4243
const audioRef = useRef<HTMLAudioElement | null>(null);
4344
const chatPopRef = useRef<HTMLAudioElement | null>(null);
@@ -88,11 +89,13 @@ export default function ACARS() {
8889
throw new Error('Failed to validate access');
8990
}
9091

91-
const { valid } = await validateResponse.json();
92+
const { valid, accessId: sessionAccess } = await validateResponse.json();
9293
if (!valid) {
9394
throw new Error('Invalid access token');
9495
}
9596

97+
setSessionAccessId(sessionAccess);
98+
9699
const flightResponse = await fetch(
97100
`${import.meta.env.VITE_SERVER_URL}/api/flights/${sessionId}`,
98101
{ credentials: 'include' }
@@ -251,13 +254,13 @@ export default function ACARS() {
251254
}, []);
252255

253256
useEffect(() => {
254-
if (!sessionId || loading) {
257+
if (!sessionId || loading || !sessionAccessId) {
255258
return;
256259
}
257260

258261
const socket = createFlightsSocket(
259262
sessionId,
260-
accessId || '',
263+
sessionAccessId,
261264
() => {},
262265
() => {},
263266
() => {},
@@ -305,7 +308,7 @@ export default function ACARS() {
305308
socket.socket.disconnect();
306309
socketRef.current = null;
307310
};
308-
}, [sessionId, flightId, loading, accessId]);
311+
}, [sessionId, flightId, loading, sessionAccessId]);
309312

310313
useEffect(() => {
311314
const overviewSocket = createOverviewSocket((data) => {

src/pages/Flights.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ export default function Flights() {
4848
const accessId = searchParams.get('accessId') ?? undefined;
4949
const isMobile = useMediaQuery({ maxWidth: 1000 });
5050

51-
// Debug logging
52-
console.log(`[Flights] URL Params - SessionID: "${sessionId}", AccessID: "${accessId}"`);
53-
5451
const [accessError, setAccessError] = useState<string | null>(null);
5552
const [validatingAccess, setValidatingAccess] = useState(true);
5653
const [session, setSession] = useState<SessionData | null>(null);

src/sockets/flightsSocket.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ export function createFlightsSocket(
1111
onFlightDeleted: (data: { flightId: string | number }) => void,
1212
onFlightError?: (error: { action: string; flightId?: string | number; error: string }) => void
1313
) {
14-
console.log(`[createFlightsSocket] Creating socket with SessionID: "${sessionId}", AccessID: "${accessId}"`);
15-
1614
const socket = io(SOCKET_URL, {
1715
withCredentials: true,
1816
path: '/sockets/flights',
@@ -23,19 +21,8 @@ export function createFlightsSocket(
2321
timeout: 10000
2422
});
2523

26-
// Add error handlers for better debugging
27-
socket.on('connect_error', (error) => {
28-
console.error('Socket connection error:', error.message);
29-
});
30-
31-
socket.on('error', (error) => {
32-
console.error('Socket error:', error);
33-
});
34-
3524
socket.on('disconnect', (reason) => {
36-
console.log('Socket disconnected:', reason);
3725
if (reason === 'io server disconnect') {
38-
// Server disconnected the socket, try to reconnect manually
3926
socket.connect();
4027
}
4128
});

0 commit comments

Comments
 (0)