acebase-server
Version:
AceBase realtime database server (webserver endpoint to allow remote connections)
53 lines • 3.52 kB
TypeScript
import { IOAuth2ProviderSettings, IOAuth2AuthCodeParams, IOAuth2RefreshTokenParams, OAuth2Provider, OAuth2ProviderInitInfo } from './oauth-provider';
/**
* Details of your app to access the Dropbox API
*/
export interface IDropboxAuthSettings extends IOAuth2ProviderSettings {
/** specify specific scopes, or leave empty to get all configured scopes for the app. 'account_info.read' will be added automatically if you provided other scopes. See permissions tab in your Dropbox app settings */
scopes?: string[];
}
interface IDropboxAuthToken {
access_token: string;
expires_in: number;
expires: Date;
refresh_token: string;
scope: string;
token_type: string;
account_id: string;
uid: string;
}
export declare class DropboxAuthProvider extends OAuth2Provider {
constructor(settings: IDropboxAuthSettings);
/**
* Starts auth flow by getting the url the user should be redirected to
* @param info.redirectUrl Url dropbox will redirect to after authorizing
* @param info.state Optional state that will be passed to redirectUri by dropbox
* @param info.options Optional Dropbox specific authentication settings
* @param info.options.require_role If this parameter is specified, the user will be asked to authorize with a particular type of Dropbox account, either work for a team account or personal for a personal account. Your app should still verify the type of Dropbox account after authorization since the user could modify or remove the require_role parameter.
* @param info.options.force_reapprove Whether or not to force the user to approve the app again if they've already done so. If false (default), a user who has already approved the application may be automatically redirected to the URI specified by redirect_uri. If true, the user will not be automatically redirected and will have to approve the app again.
* @param info.options.disable_signup When true (default is false) users will not be able to sign up for a Dropbox account via the authorization page. Instead, the authorization page will show a link to the Dropbox iOS app in the App Store. This is only intended for use when necessary for compliance with App Store policies.
* @param info.options.locale If the locale specified is a supported language, Dropbox will direct users to a translated version of the authorization website. Locale tags should be IETF language tags.
* @param info.options.force_reauthentication When true (default is false) users will be signed out if they are currently signed in. This will make sure the user is brought to a page where they can create a new account or sign in to another account. This should only be used when there is a definite reason to believe that the user needs to sign in to a new or different account.
*/
init(info: OAuth2ProviderInitInfo): Promise<string>;
getAccessToken(params: IOAuth2AuthCodeParams | IOAuth2RefreshTokenParams): Promise<IDropboxAuthToken>;
getUserInfo(access_token: string): Promise<{
id: string;
name: string;
display_name: string;
picture: {
url: string;
}[];
email: string;
email_verified: boolean;
other: {
account_type: "basic" | "pro" | "business";
disabled: boolean;
locale: string;
country: string;
};
}>;
}
export declare const AuthProvider: typeof DropboxAuthProvider;
export {};
//# sourceMappingURL=dropbox.d.ts.map