mirror of
https://github.com/samanhappy/mcphub.git
synced 2025-12-24 02:39:19 -05:00
chore: simplify oauth token expiry helpers
Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
This commit is contained in:
@@ -371,10 +371,7 @@ export class MCPHubOAuthProvider implements OAuthClientProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private getAccessTokenExpiryMs(oauth: NonNullable<ServerConfig['oauth']>): number | undefined {
|
private getAccessTokenExpiryMs(oauth: NonNullable<ServerConfig['oauth']>): number | undefined {
|
||||||
const { accessTokenExpiresAt } = oauth;
|
return oauth.accessTokenExpiresAt;
|
||||||
if (!accessTokenExpiresAt) return undefined;
|
|
||||||
if (typeof accessTokenExpiresAt === 'number') return accessTokenExpiresAt;
|
|
||||||
return undefined;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async refreshAccessTokenIfNeeded(
|
private async refreshAccessTokenIfNeeded(
|
||||||
@@ -403,9 +400,9 @@ export class MCPHubOAuthProvider implements OAuthClientProvider {
|
|||||||
this.serverConfig = updatedConfig;
|
this.serverConfig = updatedConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
const refreshTokenFromResponse = tokens.refreshToken;
|
const newRefreshToken = tokens.refreshToken;
|
||||||
const nextRefreshToken = refreshTokenFromResponse ?? refreshToken;
|
const nextRefreshToken = newRefreshToken ?? refreshToken;
|
||||||
if (refreshTokenFromResponse === undefined) {
|
if (newRefreshToken === undefined) {
|
||||||
console.warn(
|
console.warn(
|
||||||
`Refresh response missing refresh_token for ${this.serverName}; reusing existing refresh token (some providers omit refresh_token on refresh)`,
|
`Refresh response missing refresh_token for ${this.serverName}; reusing existing refresh token (some providers omit refresh_token on refresh)`,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import type { ServerConfig } from '../../src/types/index.js';
|
|||||||
|
|
||||||
describe('MCPHubOAuthProvider token refresh', () => {
|
describe('MCPHubOAuthProvider token refresh', () => {
|
||||||
const NOW = 1_700_000_000_000;
|
const NOW = 1_700_000_000_000;
|
||||||
|
const TEN_MINUTES_MS = 10 * 60 * 1_000;
|
||||||
let nowSpy: jest.SpyInstance<number, []>;
|
let nowSpy: jest.SpyInstance<number, []>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
@@ -92,7 +93,7 @@ describe('MCPHubOAuthProvider token refresh', () => {
|
|||||||
...baseConfig,
|
...baseConfig,
|
||||||
oauth: {
|
oauth: {
|
||||||
...baseConfig.oauth,
|
...baseConfig.oauth,
|
||||||
accessTokenExpiresAt: NOW + 10 * 60 * 1_000,
|
accessTokenExpiresAt: NOW + TEN_MINUTES_MS,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user