diff --git a/src/services/mcpOAuthProvider.ts b/src/services/mcpOAuthProvider.ts index bc073c9..a90a7e3 100644 --- a/src/services/mcpOAuthProvider.ts +++ b/src/services/mcpOAuthProvider.ts @@ -371,10 +371,7 @@ export class MCPHubOAuthProvider implements OAuthClientProvider { } private getAccessTokenExpiryMs(oauth: NonNullable): number | undefined { - const { accessTokenExpiresAt } = oauth; - if (!accessTokenExpiresAt) return undefined; - if (typeof accessTokenExpiresAt === 'number') return accessTokenExpiresAt; - return undefined; + return oauth.accessTokenExpiresAt; } private async refreshAccessTokenIfNeeded( @@ -403,9 +400,9 @@ export class MCPHubOAuthProvider implements OAuthClientProvider { this.serverConfig = updatedConfig; } - const refreshTokenFromResponse = tokens.refreshToken; - const nextRefreshToken = refreshTokenFromResponse ?? refreshToken; - if (refreshTokenFromResponse === undefined) { + const newRefreshToken = tokens.refreshToken; + const nextRefreshToken = newRefreshToken ?? refreshToken; + if (newRefreshToken === undefined) { console.warn( `Refresh response missing refresh_token for ${this.serverName}; reusing existing refresh token (some providers omit refresh_token on refresh)`, ); diff --git a/tests/services/mcpOAuthProvider.test.ts b/tests/services/mcpOAuthProvider.test.ts index 059a5d7..0de5d76 100644 --- a/tests/services/mcpOAuthProvider.test.ts +++ b/tests/services/mcpOAuthProvider.test.ts @@ -28,6 +28,7 @@ import type { ServerConfig } from '../../src/types/index.js'; describe('MCPHubOAuthProvider token refresh', () => { const NOW = 1_700_000_000_000; + const TEN_MINUTES_MS = 10 * 60 * 1_000; let nowSpy: jest.SpyInstance; beforeEach(() => { @@ -92,7 +93,7 @@ describe('MCPHubOAuthProvider token refresh', () => { ...baseConfig, oauth: { ...baseConfig.oauth, - accessTokenExpiresAt: NOW + 10 * 60 * 1_000, + accessTokenExpiresAt: NOW + TEN_MINUTES_MS, }, };