@lens-protocol/react
Version:
Interacting with the Lens Protocol API using React.
36 lines (35 loc) • 1.51 kB
TypeScript
import { IAccessTokenStorage } from '@lens-protocol/api-bindings';
import { CredentialsExpiredError, Logout } from '@lens-protocol/domain/use-cases/authentication';
import { PromiseResult } from '@lens-protocol/shared-kernel';
import { IStorage, PersistedCredentials, StorageSubscriber, StorageSubscription } from '@lens-protocol/storage';
import { AuthApi } from "./AuthApi.js";
import { JwtCredentials } from "./JwtCredentials.js";
export type Unsubscribe = () => void;
/**
* Stores auth credentials.
* Access token is kept in memory.
* Identity token is kept in memory.
* Refresh token is persisted permanently.
*/
export declare class CredentialsStorage implements IStorage<JwtCredentials>, IAccessTokenStorage {
private readonly refreshTokenStorage;
private readonly authApi;
private refreshTimer;
private refreshPromise;
private subscribers;
private accessToken;
private identityToken;
private logout;
constructor(refreshTokenStorage: IStorage<PersistedCredentials>, authApi: AuthApi);
onExpiry(logout: Logout): void;
set(newCredentials: JwtCredentials): Promise<void>;
get(): Promise<JwtCredentials | null>;
reset(): Promise<void>;
subscribe(subscriber: StorageSubscriber<JwtCredentials>): StorageSubscription;
getAccessToken(): string | null;
refreshToken(): PromiseResult<void, CredentialsExpiredError>;
private cancelScheduledRefresh;
private refreshCredentials;
private notifySubscribers;
private getRefreshToken;
}