From 56c870709334b024e38e89a2de006c492ee33db1 Mon Sep 17 00:00:00 2001 From: Wesley Finck Date: Tue, 11 Nov 2025 09:36:16 -0500 Subject: [PATCH] formatting and linting --- .../use-cases/RefreshAccessTokenUseCase.ts | 5 ++++- .../services/JwtTokenService.ts | 8 ++++++-- src/webapp/app/api/auth/me/route.ts | 20 +++++++++++++------ src/webapp/lib/auth/token.ts | 8 +++++--- src/webapp/lib/serverAuth.ts | 16 +++++++++++---- .../services/auth/CookieAuthService.server.ts | 4 +++- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/modules/user/application/use-cases/RefreshAccessTokenUseCase.ts b/src/modules/user/application/use-cases/RefreshAccessTokenUseCase.ts index 4c2f98a9..1edf4298 100644 --- a/src/modules/user/application/use-cases/RefreshAccessTokenUseCase.ts +++ b/src/modules/user/application/use-cases/RefreshAccessTokenUseCase.ts @@ -58,7 +58,10 @@ export class RefreshAccessTokenUseCase // Extract user ID from the new access token for logging try { const payload = JSON.parse( - Buffer.from(tokenResult.value.accessToken.split('.')[1], 'base64').toString(), + Buffer.from( + tokenResult.value.accessToken.split('.')[1]!, + 'base64', + ).toString(), ); const userId = payload.sub || payload.did || 'unknown'; console.log( diff --git a/src/modules/user/infrastructure/services/JwtTokenService.ts b/src/modules/user/infrastructure/services/JwtTokenService.ts index e5a5635a..5167fc67 100644 --- a/src/modules/user/infrastructure/services/JwtTokenService.ts +++ b/src/modules/user/infrastructure/services/JwtTokenService.ts @@ -60,12 +60,16 @@ export class JwtTokenService implements ITokenService { try { const decoded = jwt.verify(token, this.jwtSecret) as { did: string }; if (ENABLE_AUTH_LOGGING) { - console.log(`[JwtTokenService] Token validation successful for user: ${decoded.did}`); + console.log( + `[JwtTokenService] Token validation successful for user: ${decoded.did}`, + ); } return ok(decoded.did); } catch (error: any) { if (ENABLE_AUTH_LOGGING) { - console.log(`[JwtTokenService] Token validation failed: ${error.message}`); + console.log( + `[JwtTokenService] Token validation failed: ${error.message}`, + ); } return ok(null); // Token is invalid or expired } diff --git a/src/webapp/app/api/auth/me/route.ts b/src/webapp/app/api/auth/me/route.ts index a37b6d88..f355f0c6 100644 --- a/src/webapp/app/api/auth/me/route.ts +++ b/src/webapp/app/api/auth/me/route.ts @@ -35,7 +35,7 @@ export async function GET(request: NextRequest) { if (ENABLE_AUTH_LOGGING) { const tokenPreview = '...' + refreshToken.slice(-8); const accessTokenStatus = !accessToken ? 'missing' : 'expiring soon'; - + // Try to extract user ID from access token if available let userContext = ''; if (accessToken) { @@ -47,7 +47,7 @@ export async function GET(request: NextRequest) { // Continue without user context if token parsing fails } } - + console.log( `[auth/me] Access token ${accessTokenStatus}${userContext}, attempting refresh with token: ${tokenPreview}`, ); @@ -107,7 +107,9 @@ export async function GET(request: NextRequest) { try { const payload = JSON.parse(atob(accessToken.split('.')[1])); const userDid = payload.did || 'unknown'; - console.log(`[auth/me] Using valid access token for user: ${userDid}`); + console.log( + `[auth/me] Using valid access token for user: ${userDid}`, + ); } catch { // Continue without logging user ID if token parsing fails } @@ -125,7 +127,9 @@ export async function GET(request: NextRequest) { if (!profileResponse.ok) { if (ENABLE_AUTH_LOGGING) { - console.log(`[auth/me] Profile fetch failed with status: ${profileResponse.status}`); + console.log( + `[auth/me] Profile fetch failed with status: ${profileResponse.status}`, + ); } // Clear cookies on auth failure const response = NextResponse.json( @@ -139,7 +143,9 @@ export async function GET(request: NextRequest) { const user = await profileResponse.json(); if (ENABLE_AUTH_LOGGING) { - console.log(`[auth/me] Profile fetched successfully for user: ${user.handle} (${user.id})`); + console.log( + `[auth/me] Profile fetched successfully for user: ${user.handle} (${user.id})`, + ); } return NextResponse.json({ isAuth: true, user }); } catch (error) { @@ -209,7 +215,9 @@ async function performTokenRefresh( const user = await profileResponse.json(); if (ENABLE_AUTH_LOGGING) { - console.log(`[auth/me] Token refresh and profile fetch successful for user: ${user.handle} (${user.id})`); + console.log( + `[auth/me] Token refresh and profile fetch successful for user: ${user.handle} (${user.id})`, + ); } // Return user profile with backend's Set-Cookie headers return new Response(JSON.stringify({ isAuth: true, user }), { diff --git a/src/webapp/lib/auth/token.ts b/src/webapp/lib/auth/token.ts index 3cbdfa8f..d0129318 100644 --- a/src/webapp/lib/auth/token.ts +++ b/src/webapp/lib/auth/token.ts @@ -24,11 +24,13 @@ export const isTokenExpiringSoon = ( const expiry = payload.exp * 1000; const bufferTime = bufferSeconds * 1000; const isExpiring = Date.now() >= expiry - bufferTime; - + if (isExpiring && ENABLE_AUTH_LOGGING) { - console.log(`[isTokenExpiringSoon] Token expiring soon for user: ${userDid}`); + console.log( + `[isTokenExpiringSoon] Token expiring soon for user: ${userDid}`, + ); } - + return isExpiring; } catch { return true; diff --git a/src/webapp/lib/serverAuth.ts b/src/webapp/lib/serverAuth.ts index 0f52d483..32b5672e 100644 --- a/src/webapp/lib/serverAuth.ts +++ b/src/webapp/lib/serverAuth.ts @@ -15,7 +15,9 @@ export async function getServerAuthStatus(): Promise<{ if (!accessToken || ServerCookieAuthService.isTokenExpired(accessToken)) { if (ENABLE_AUTH_LOGGING) { - const reason = !accessToken ? 'No access token' : 'Access token expired'; + const reason = !accessToken + ? 'No access token' + : 'Access token expired'; console.log(`[serverAuth] Authentication failed: ${reason}`); } return { @@ -39,7 +41,9 @@ export async function getServerAuthStatus(): Promise<{ if (!response.ok) { if (ENABLE_AUTH_LOGGING) { - console.log(`[serverAuth] Profile API request failed with status: ${response.status}`); + console.log( + `[serverAuth] Profile API request failed with status: ${response.status}`, + ); } return { isAuthenticated: false, @@ -50,7 +54,9 @@ export async function getServerAuthStatus(): Promise<{ const user: UserProfile = await response.json(); if (ENABLE_AUTH_LOGGING) { - console.log(`[serverAuth] Server-side authentication successful for user: ${user.handle} (${user.id})`); + console.log( + `[serverAuth] Server-side authentication successful for user: ${user.handle} (${user.id})`, + ); } return { @@ -60,7 +66,9 @@ export async function getServerAuthStatus(): Promise<{ }; } catch (error: any) { if (ENABLE_AUTH_LOGGING) { - console.log(`[serverAuth] Authentication error: ${error.message || 'Unknown error'}`); + console.log( + `[serverAuth] Authentication error: ${error.message || 'Unknown error'}`, + ); } return { isAuthenticated: false, diff --git a/src/webapp/services/auth/CookieAuthService.server.ts b/src/webapp/services/auth/CookieAuthService.server.ts index b2c0b723..913e9a78 100644 --- a/src/webapp/services/auth/CookieAuthService.server.ts +++ b/src/webapp/services/auth/CookieAuthService.server.ts @@ -25,7 +25,9 @@ export class ServerCookieAuthService { if (!token) return true; try { - const payload = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); + const payload = JSON.parse( + Buffer.from(token.split('.')[1], 'base64').toString(), + ); const userDid = payload.did || 'unknown'; const expiry = payload.exp * 1000; const bufferTime = bufferMinutes * 60 * 1000; -- 2.51.2