Files
AFFiNE-Mirror/packages/backend/server/src/plugins/oauth/providers/def.ts
T
2024-09-03 09:03:39 +00:00

22 lines
487 B
TypeScript

import { OAuthProviderName } from '../config';
export interface OAuthAccount {
id: string;
email: string;
avatarUrl?: string;
}
export interface Tokens {
accessToken: string;
scope?: string;
refreshToken?: string;
expiresAt?: Date;
}
export abstract class OAuthProvider {
abstract provider: OAuthProviderName;
abstract getAuthUrl(state: string): string;
abstract getToken(code: string): Promise<Tokens>;
abstract getUser(token: string): Promise<OAuthAccount>;
}