@rytass/member-base-nestjs-module
Version:
Rytass Member System NestJS Base Module
28 lines (27 loc) • 1.17 kB
TypeScript
export type OAuthChannel = 'google' | 'facebook' | (string & {});
export interface BaseOAuth2Provider {
channel: OAuthChannel;
clientId: string;
clientSecret: string;
redirectUri: string;
getState?: () => string | Promise<string>;
}
export interface GoogleOAuth2Provider extends BaseOAuth2Provider {
channel: 'google';
scope?: string[];
}
export interface FacebookOAuth2Provider extends BaseOAuth2Provider {
channel: 'facebook';
scope?: string[];
}
export interface CustomOAuth2Provider extends BaseOAuth2Provider {
channel: string;
scope: string[];
requestUrl: string;
getAccessTokenFromCode: (code: string) => Promise<string>;
getAccountFromAccessToken: (accessToken: string) => Promise<string>;
}
export type OAuth2Provider = GoogleOAuth2Provider | FacebookOAuth2Provider | CustomOAuth2Provider;
export declare const isGoogleProvider: (provider: OAuth2Provider) => provider is GoogleOAuth2Provider;
export declare const isFacebookProvider: (provider: OAuth2Provider) => provider is FacebookOAuth2Provider;
export declare const isCustomProvider: (provider: OAuth2Provider) => provider is CustomOAuth2Provider;