UNPKG

2.16 kBTypeScriptView Raw
1/// <reference types="node" />
2import { IClient } from '../definitions';
3export interface AuthorizationParameters {
4 [key: string]: string;
5}
6export interface TokenParameters {
7 [key: string]: string;
8}
9export interface OAuth2FlowOptions {
10 readonly authorizationUrl: string;
11 readonly tokenUrl: string;
12 readonly clientId: string;
13 readonly redirectHost?: string;
14 readonly redirectPort?: number;
15}
16export interface OAuth2FlowDeps {
17 readonly client: IClient;
18}
19export declare abstract class OAuth2Flow {
20 readonly e: OAuth2FlowDeps;
21 readonly authorizationUrl: string;
22 readonly tokenUrl: string;
23 readonly clientId: string;
24 readonly redirectHost: string;
25 readonly redirectPort: number;
26 constructor({ authorizationUrl, tokenUrl, clientId, redirectHost, redirectPort }: OAuth2FlowOptions, e: OAuth2FlowDeps);
27 get redirectUrl(): string;
28 run(): Promise<string>;
29 protected abstract generateAuthorizationParameters(challenge: string): AuthorizationParameters;
30 protected abstract generateTokenParameters(authorizationCode: string, verifier: string): TokenParameters;
31 protected getSuccessHtml(): Promise<string>;
32 protected getAuthorizationCode(): Promise<string>;
33 protected getAccessToken(authorizationCode: string, verifier: string): Promise<string>;
34 protected generateVerifier(): string;
35 protected generateChallenge(verifier: string): string;
36 protected base64URLEncode(buffer: Buffer): string;
37}
38export interface Auth0OAuth2FlowOptions extends Partial<OAuth2FlowOptions> {
39 readonly email: string;
40 readonly connection: string;
41 readonly audience?: string;
42}
43export declare class Auth0OAuth2Flow extends OAuth2Flow {
44 readonly e: OAuth2FlowDeps;
45 readonly email: string;
46 readonly audience: string;
47 readonly connection: string;
48 constructor({ email, connection, audience, authorizationUrl, tokenUrl, clientId, ...options }: Auth0OAuth2FlowOptions, e: OAuth2FlowDeps);
49 protected generateAuthorizationParameters(challenge: string): AuthorizationParameters;
50 protected generateTokenParameters(code: string, verifier: string): TokenParameters;
51}