n8n
Version:
n8n Workflow Automation Tool
31 lines (30 loc) • 1.72 kB
TypeScript
import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types';
import { OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth';
import { Logger } from '@n8n/backend-common';
import { UserRepository } from '@n8n/db';
import { AccessTokenRepository } from './database/repositories/oauth-access-token.repository';
import { RefreshTokenRepository } from './database/repositories/oauth-refresh-token.repository';
import { UserWithContext } from './mcp.types';
import { JwtService } from '../../services/jwt.service';
export declare class McpOAuthTokenService {
private readonly logger;
private readonly jwtService;
private readonly userRepository;
private readonly accessTokenRepository;
private readonly refreshTokenRepository;
private readonly MCP_AUDIENCE;
private readonly ACCESS_TOKEN_EXPIRY_SECONDS;
private readonly REFRESH_TOKEN_EXPIRY_MS;
constructor(logger: Logger, jwtService: JwtService, userRepository: UserRepository, accessTokenRepository: AccessTokenRepository, refreshTokenRepository: RefreshTokenRepository);
getAccessTokenExpirySeconds(): number;
generateTokenPair(userId: string, clientId: string): {
accessToken: string;
refreshToken: string;
};
saveTokenPair(accessToken: string, refreshToken: string, clientId: string, userId: string): Promise<void>;
validateAndRotateRefreshToken(refreshToken: string, clientId: string): Promise<OAuthTokens>;
verifyAccessToken(token: string): Promise<AuthInfo>;
verifyOAuthAccessToken(token: string): Promise<UserWithContext>;
revokeAccessToken(token: string, clientId: string): Promise<boolean>;
revokeRefreshToken(token: string, clientId: string): Promise<boolean>;
}