box-node-sdk
Version:
Official SDK for Box Platform APIs
51 lines • 2.95 kB
TypeScript
import { AccessToken } from '../schemas/accessToken';
import { Authentication } from '../networking/auth';
import { NetworkSession } from '../networking/network';
import { TokenStorage } from './tokenStorage';
export interface DeveloperTokenConfig {
readonly clientId?: string;
readonly clientSecret?: string;
}
export declare class BoxDeveloperTokenAuth implements Authentication {
readonly token: string;
/**
* Configuration object of DeveloperTokenAuth. */
readonly config: DeveloperTokenConfig;
/**
* An object responsible for storing token. If no custom implementation provided, the token will be stored in memory. */
readonly tokenStorage: TokenStorage;
constructor(fields: Omit<BoxDeveloperTokenAuth, 'tokenStorage' | 'config' | 'retrieveToken' | 'refreshToken' | 'retrieveAuthorizationHeader' | 'revokeToken' | 'downscopeToken'> & Partial<Pick<BoxDeveloperTokenAuth, 'config'>>);
/**
* Retrieves stored developer token
* @param {NetworkSession} networkSession An object to keep network session state
* @returns {Promise<AccessToken>}
*/
retrieveToken(networkSession?: NetworkSession): Promise<AccessToken>;
/**
* Developer token cannot be refreshed
* @param {NetworkSession} networkSession An object to keep network session state
* @returns {Promise<AccessToken>}
*/
refreshToken(networkSession?: NetworkSession): Promise<AccessToken>;
/**
* @param {NetworkSession} networkSession
* @returns {Promise<string>}
*/
retrieveAuthorizationHeader(networkSession?: NetworkSession): Promise<string>;
/**
* Revoke an active Access Token, effectively logging a user out that has been previously authenticated.
* @param {NetworkSession} networkSession An object to keep network session state
* @returns {Promise<undefined>}
*/
revokeToken(networkSession?: NetworkSession): Promise<undefined>;
/**
* Downscope access token to the provided scopes. Returning a new access token with the provided scopes, with the original access token unchanged.
* @param {readonly string[]} scopes The scope(s) to apply to the resulting token.
* @param {string} resource The file or folder to get a downscoped token for. If None and shared_link None, the resulting token will not be scoped down to just a single item. The resource should be a full URL to an item, e.g. https://api.box.com/2.0/files/123456.
* @param {string} sharedLink The shared link to get a downscoped token for. If None and item None, the resulting token will not be scoped down to just a single item.
* @param {NetworkSession} networkSession An object to keep network session state
* @returns {Promise<AccessToken>}
*/
downscopeToken(scopes: readonly string[], resource?: string, sharedLink?: string, networkSession?: NetworkSession): Promise<AccessToken>;
}
//# sourceMappingURL=developerTokenAuth.d.ts.map