@bitblit/ratchet-warden-common
Version:
Typescript library to simplify using simplewebauthn and secondary auth methods over GraphQL
52 lines (51 loc) • 3.18 kB
TypeScript
import { WardenUserServiceOptions } from "./provider/warden-user-service-options.js";
import { WardenLoggedInUserWrapper } from "./provider/warden-logged-in-user-wrapper.js";
import { WardenContact } from "../common/model/warden-contact.js";
import { WardenJwtToken } from "../common/model/warden-jwt-token.js";
import { WardenLoginResults } from "../common/model/warden-login-results.js";
import { WardenEntrySummary } from "../common/model/warden-entry-summary.js";
import { WardenTeamRoleMapping } from "../common/model/warden-team-role-mapping.ts";
export declare class WardenUserService<T> {
private options;
private loggedInTimerSubscription;
private _autoRefreshEnabled;
constructor(options: WardenUserServiceOptions<T>);
cleanShutDown(): void;
get serviceOptions(): WardenUserServiceOptions<T>;
createAccount(contact: WardenContact, sendCode?: boolean, label?: string, tags?: string[]): Promise<string>;
addContactToLoggedInUser(contact: WardenContact): Promise<boolean>;
get autoRefreshEnabled(): boolean;
set autoRefreshEnabled(newValue: boolean);
checkForAutoLogoutOrRefresh(t: number): Promise<void>;
logout(): void;
fetchLoggedInUserId(): string;
fetchLoggedInUserWrapper(): WardenLoggedInUserWrapper<T>;
loggedInUserHasGlobalRole(roleId: string): boolean;
loggedInUserHasRoleOnTeam(teamId: string, roleId: string): boolean;
isLoggedIn(): boolean;
fetchLoggedInUserJwtObject(): WardenJwtToken<T>;
fetchLoggedInUserJwtToken(): string;
fetchLoggedInUserObject(): T;
fetchLoggedInProxyObject(): T;
fetchLoggedInGlobalRoleIds(): string[];
fetchLoggedInTeamRoleMappingsGlobalRoleIds(): WardenTeamRoleMapping[];
fetchLoggedInUserExpirationEpochSeconds(): number;
fetchLoggedInUserRemainingSeconds(): number;
private updateLoggedInUserFromTokenString;
refreshToken(): Promise<WardenLoggedInUserWrapper<T>>;
sendExpiringCode(contact: WardenContact): Promise<boolean>;
private processWardenLoginResults;
private updateRecentLoginsFromWardenEntrySummary;
private updateRecentLoginsFromLoggedInUserWrapper;
executeWebAuthnBasedLogin(userId: string): Promise<WardenLoggedInUserWrapper<T>>;
removeWebAuthnRegistrationFromLoggedInUser(input: string): Promise<WardenEntrySummary>;
removeContactFromLoggedInUser(input: WardenContact): Promise<WardenEntrySummary>;
executeValidationTokenBasedLogin(contact: WardenContact, token: string, createUserIfMissing?: boolean): Promise<WardenLoggedInUserWrapper<T>>;
executeThirdPartyTokenBasedLogin(thirdParty: string, token: string, createUserIfMissing?: boolean): Promise<WardenLoggedInUserWrapper<T>>;
saveCurrentDeviceAsWebAuthnForCurrentUser(): Promise<WardenEntrySummary>;
exportWebAuthnRegistrationEntryForLoggedInUser(origin: string): Promise<string>;
importWebAuthnRegistrationEntryForLoggedInUser(token: string): Promise<boolean>;
private defaultDeviceLabelGenerator;
executeWebAuthnLoginToWardenLoginResults(userId: string): Promise<WardenLoginResults>;
executeThirdPartyLoginToWardenLoginResults(thirdParty: string, token: string): Promise<WardenLoginResults>;
}