@rocket.chat/apps-engine
Version:
The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.
25 lines (24 loc) • 1.15 kB
TypeScript
import { URL } from 'url';
import type { App } from '../../definition/App';
import type { IConfigurationExtend, IPersistence } from '../../definition/accessors';
import type { IAuthData, IOAuth2Client, IOAuth2ClientOptions } from '../../definition/oauth2/IOAuth2';
import type { IUser } from '../../definition/users';
export declare enum GrantType {
RefreshToken = "refresh_token",
AuthorizationCode = "authorization_code"
}
export declare class OAuth2Client implements IOAuth2Client {
private readonly app;
private readonly config;
private defaultContents;
constructor(app: App, config: IOAuth2ClientOptions);
setup(configuration: IConfigurationExtend): Promise<void>;
getUserAuthorizationUrl(user: IUser, scopes?: Array<string>): Promise<URL>;
getAccessTokenForUser(user: IUser): Promise<IAuthData | undefined>;
refreshUserAccessToken(user: IUser, persis: IPersistence): Promise<IAuthData | undefined>;
revokeUserAccessToken(user: IUser, persis: IPersistence): Promise<boolean>;
private getBaseURLWithoutTrailingSlash;
private handleOAuthCallback;
private saveToken;
private removeToken;
}