feat: add API token to WebSocket URL for authentication
WebSocket connections can't send custom headers, so the token is passed as a query parameter. Works with the backend change to support ?token= auth.
This commit is contained in:
parent
a5893bba21
commit
4ad8235f7a
1 changed files with 20 additions and 1 deletions
|
|
@ -57,5 +57,24 @@ export function getPulseWebSocketUrl(path = '/ws'): string {
|
|||
}
|
||||
|
||||
const protocol = origin.protocol === 'https:' ? 'wss:' : 'ws:';
|
||||
return `${protocol}//${origin.host}${normalizedPath}`;
|
||||
let url = `${protocol}//${origin.host}${normalizedPath}`;
|
||||
|
||||
// Add API token as query parameter if available (WebSocket doesn't support headers)
|
||||
// Import dynamically to avoid circular dependencies
|
||||
try {
|
||||
const storage = typeof window !== 'undefined' ? window.sessionStorage : null;
|
||||
if (storage) {
|
||||
const stored = storage.getItem('pulse_auth');
|
||||
if (stored) {
|
||||
const parsed = JSON.parse(stored);
|
||||
if (parsed?.type === 'token' && parsed.value) {
|
||||
url += `?token=${encodeURIComponent(parsed.value)}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// Ignore storage errors
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue