iam-client-lib
Version:
Library for Decentralized Identity and Access Management
62 lines (61 loc) • 2.23 kB
TypeScript
import { AxiosInstance, AxiosResponse } from 'axios';
import { SignerService } from '../signer';
import { SiweOptions } from './types';
/**
* Configures authentication for the provided http client
*/
export declare class AuthService {
private signerService;
private httpClient;
isBrowser: boolean;
authEnabled: boolean;
refresh_token: string | undefined;
private readonly authStatusPath;
private readonly authTokenClient;
private authenticatePromise;
private isAuthenticating;
private logger;
/**
*
* @param signerService service used to sign authentication message
* @param httpClient http client to which authentication is provided
* @param authTokenClient client exchanging authentication token on access token
*/
constructor(signerService: SignerService, httpClient: AxiosInstance, { authStatusPath, siweOptions, }: {
authStatusPath?: string;
siweOptions: SiweOptions;
});
/**
* Verifies current session and establishes new one if needed
* https://energyweb.atlassian.net/wiki/spaces/MYEN/pages/2303295607/ICL-+ICS+Auth+Process
*/
login(): Promise<void>;
/**
* @description Refreshes access token. If login still fails then signs new identity token and requests access token
* After authentication runs previously failed requests
*/
authenticate(): Promise<void>;
/**
* Checks that auth token has been created, has not expired and corresponds to signer.
* This is done by a request to the server because the auth token is stored in an HTTP-only cookie and
* so the Javascript has no way to check its validity
*
* @return true if cache client is authenticated server
*/
isAuthenticated(): Promise<boolean>;
refreshToken(): Promise<void>;
/**
* Saves access and refresh tokens from login response
*
* @param res Response from login request
*/
setTokens({ headers, data }: AxiosResponse): void;
/**
* Decides whether to retry the request or not based on the given axios error.
*
* @param error axios error
*
* @return true if request should be retried
*/
private handleRequestError;
}