forge-server-utils
Version:
Tools for accessing Autodesk Forge APIs from Node.js apps and from browser.
90 lines • 4.27 kB
TypeScript
export interface ITwoLeggedToken {
access_token: string;
expires_in: number;
}
export interface IThreeLeggedToken extends ITwoLeggedToken {
refresh_token: string;
}
export interface IUserProfile {
userId: string;
userName: string;
emailId: string;
firstName: string;
lastName: string;
emailVerified: boolean;
'2FaEnabled': boolean;
countryCode: string;
language: string;
optin: boolean;
lastModified: string;
websiteUrl: string;
profileImages: {
[key: string]: string;
};
}
/**
* Client providing access to Autodesk Forge {@link https://forge.autodesk.com/en/docs/oauth/v2|authentication APIs}.
* @tutorial authentication
*/
export declare class AuthenticationClient {
private client_id;
private client_secret;
private host;
private _cached;
get clientId(): string;
/**
* Initializes new client with specific Forge app credentials.
* @param {string} client_id Forge application client ID.
* @param {string} client_secret Forge application client secret.
* @param {string} [host="https://developer.api.autodesk.com"] Forge API host.
*/
constructor(client_id: string, client_secret: string, host?: string);
protected post(endpoint: string, params: any): Promise<import("axios").AxiosResponse<any, any>>;
/**
* Retrieves 2-legged access token for a specific set of scopes
* ({@link https://forge.autodesk.com/en/docs/oauth/v2/reference/http/authenticate-POST|docs}).
* Unless the {@see force} parameter is used, the access tokens are cached
* based on their scopes and the 'expires_in' field in the response.
* @param {string[]} scopes List of requested {@link https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/scopes|scopes}.
* @param {boolean} [force] Skip cache, if there is any, and retrieve a new token.
* @returns {Promise<ITwoLeggedToken>} Promise of 2-legged authentication object containing two fields,
* 'access_token' with the actual token, and 'expires_in' with expiration time (in seconds).
*/
authenticate(scopes: string[], force?: boolean): Promise<ITwoLeggedToken>;
/**
* Generates a URL for 3-legged authentication.
* @param {string[]} scopes List of requested {@link https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/scopes|scopes}.
* @param {string} redirectUri Same redirect URI as defined by the Forge app.
* @returns {string} Autodesk login URL.
*/
getAuthorizeRedirect(scopes: string[], redirectUri: string): string;
/**
* Exchanges 3-legged authentication code for an access token
* ({@link https://forge.autodesk.com/en/docs/oauth/v2/reference/http/gettoken-POST|docs}).
* @async
* @param {string} code Authentication code returned from the Autodesk login process.
* @param {string} redirectUri Same redirect URI as defined by the Forge app.
* @returns {Promise<IThreeLeggedToken>} Promise of 3-legged authentication object containing
* 'access_token', 'refresh_token', and 'expires_in' with expiration time (in seconds).
*/
getToken(code: string, redirectUri: string): Promise<IThreeLeggedToken>;
/**
* Refreshes 3-legged access token
* ({@link https://forge.autodesk.com/en/docs/oauth/v2/reference/http/refreshtoken-POST}).
* @async
* @param {string[]} scopes List of requested {@link https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/scopes|scopes}.
* @param {string} refreshToken Refresh token.
* @returns {Promise<IThreeLeggedToken>} Promise of 3-legged authentication object containing
* 'access_token', 'refresh_token', and 'expires_in' with expiration time (in seconds).
*/
refreshToken(scopes: string[], refreshToken: string): Promise<IThreeLeggedToken>;
/**
* Gets profile information for a user based on their 3-legged auth token
* ({@link https://forge.autodesk.com/en/docs/oauth/v2/reference/http/users-@me-GET|docs}).
* @async
* @param {string} token 3-legged authentication token.
* @returns {Promise<IUserProfile>} User profile information.
*/
getUserProfile(token: string): Promise<IUserProfile>;
}
//# sourceMappingURL=authentication.d.ts.map