@vansite/ts-sharetribe-flex-sdk
Version:
This is a TypeScript SDK for Sharetribe Flex API. It reduces the complexity of the API and provides a more user-friendly interface.
46 lines (45 loc) • 1.68 kB
TypeScript
/**
* @fileoverview Client for Sharetribe Authentication API (OAuth2)
*
* @see https://www.sharetribe.com/api-reference/authentication.html
*/
import type { AxiosResponse } from "axios";
import SharetribeSdk from "../../sdk";
import IntegrationSdk from "../../integrationSdk";
import { AuthWithIdpParameter, RevokeResponse, TokenDetails, TokenRequest, TokenResponse, UserTokenRequest } from "../../types";
/**
* Encodes object as application/x-www-form-urlencoded
*/
export declare const urlEncodeFormData: (obj: Record<string, any> | null) => string;
declare class AuthenticationApi {
private readonly axios;
private readonly endpoint;
private readonly headers;
constructor(sdk: SharetribeSdk | IntegrationSdk);
/**
* Request a token using any supported OAuth2 grant
*
* @template T - Token request type
* @param {T} params - OAuth2 token request parameters
* @returns {Promise<AxiosResponse<TokenResponse<T>>>}
*/
token<T extends TokenRequest>(params: T): Promise<AxiosResponse<TokenResponse<T>>>;
/**
* Authenticate via external Identity Provider
*
* @param {AuthWithIdpParameter} params
* @returns {Promise<AxiosResponse<TokenResponse<UserTokenRequest>>>}
*/
authWithIdp(params: AuthWithIdpParameter): Promise<AxiosResponse<TokenResponse<UserTokenRequest>>>;
/**
* Revoke a refresh token
*
* @param {string} token - Refresh token to revoke
*/
revoke(token: string): Promise<AxiosResponse<RevokeResponse>>;
/**
* Introspect current access token
*/
details(): Promise<AxiosResponse<TokenDetails>>;
}
export default AuthenticationApi;