diff --git a/web/src/client/app.ts b/web/src/client/app.ts
index 91ee4306..e4f71dcc 100644
--- a/web/src/client/app.ts
+++ b/web/src/client/app.ts
@@ -742,15 +742,11 @@ export class VibeTunnelApp extends LitElement {
@close=${this.handleCloseSSHKeyManager}
>
-
- ${this.currentView !== 'auth'
- ? html`
-
- `
- : ''}
+
+
`;
}
}
diff --git a/web/src/client/components/log-viewer.ts b/web/src/client/components/log-viewer.ts
index a4c9c1ae..0c995c26 100644
--- a/web/src/client/components/log-viewer.ts
+++ b/web/src/client/components/log-viewer.ts
@@ -49,7 +49,7 @@ export class LogViewer extends LitElement {
try {
// Get log info
const infoResponse = await fetch('/api/logs/info', {
- headers: this.authClient.getAuthHeader(),
+ headers: { ...this.authClient.getAuthHeader() },
});
if (infoResponse.ok) {
const info = await infoResponse.json();
@@ -58,7 +58,7 @@ export class LogViewer extends LitElement {
// Get raw logs
const response = await fetch('/api/logs/raw', {
- headers: this.authClient.getAuthHeader(),
+ headers: { ...this.authClient.getAuthHeader() },
});
if (!response.ok) {
throw new Error('Failed to load logs');
@@ -179,7 +179,7 @@ export class LogViewer extends LitElement {
try {
const response = await fetch('/api/logs/clear', {
method: 'DELETE',
- headers: this.authClient.getAuthHeader(),
+ headers: { ...this.authClient.getAuthHeader() },
});
if (!response.ok) {
throw new Error('Failed to clear logs');
@@ -194,7 +194,7 @@ export class LogViewer extends LitElement {
private async downloadLogs(): Promise {
try {
const response = await fetch('/api/logs/raw', {
- headers: this.authClient.getAuthHeader(),
+ headers: { ...this.authClient.getAuthHeader() },
});
if (!response.ok) {
throw new Error('Failed to download logs');
diff --git a/web/src/server/middleware/auth.ts b/web/src/server/middleware/auth.ts
index 49aa20f5..e15d40e1 100644
--- a/web/src/server/middleware/auth.ts
+++ b/web/src/server/middleware/auth.ts
@@ -19,10 +19,11 @@ interface AuthenticatedRequest extends Request {
export function createAuthMiddleware(config: AuthConfig) {
return (req: AuthenticatedRequest, res: Response, next: NextFunction) => {
- // Skip auth for health check endpoint, auth endpoints, and push notifications
+ // Skip auth for health check endpoint, auth endpoints, client logging, and push notifications
if (
req.path === '/api/health' ||
req.path.startsWith('/api/auth') ||
+ req.path.startsWith('/api/logs') ||
req.path.startsWith('/api/push')
) {
return next();