Overriding APIs
#
Main interfaceinterface APIInterface { /* * Called to get the authorisation URL for the thirdparty sign-up/sign-in flow * * @method: GET * * @params: set it to undefined to disable the API. * provider * options: see APIOptions below * * @returns: "OK" and url on success */ authorisationUrlGET: | undefined | ((input: { provider: TypeProvider; options: APIOptions; }) => Promise<{ status: "OK"; url: string; }>);
/* * Called to sign-up a new user or sign-in an existing user * * @method: POST * * @params: set it to undefined to disable the API. * provider * code: authorisation code returned after using authorisation url * redirectURI: URI to direct to after successful sign-up/sign-in * options: see APIOptions below * * @returns: "OK": on successfully signing up or signing in the user * "NO_EMAIL_GIVEN_BY_PROVIDER": if thirdparty provider used in the API doesn't return email of the user * "FIELD_ERROR": if there is any field error during thirdparty signup/signin flow */ signInUpPOST: | undefined | ((input: { provider: TypeProvider; code: string; redirectURI: string; options: APIOptions; }) => Promise< | { status: "OK"; createdNewUser: boolean; user: User; authCodeResponse: any; } | { status: "NO_EMAIL_GIVEN_BY_PROVIDER" } | { status: "FIELD_ERROR"; error: string; } >);}
#
Supporting Typesinterface APIOptions { recipeImplementation: RecipeInterface; config: TypeNormalisedInput; recipeId: string; isInServerlessEnv: boolean; providers: TypeProvider[]; req: Request; res: Response; next: NextFunction;}
interface TypeProvider { id: string; get: (redirectURI: string | undefined, authCodeFromRequest: string | undefined) => Promise<TypeProviderGetResponse>;}