@accounts/client
Version:
Fullstack authentication and accounts-management
38 lines (36 loc) • 1.29 kB
text/typescript
import {
type LoginResult,
type ImpersonationUserIdentity,
type ImpersonationResult,
type CreateUser,
type User,
type CreateUserResult,
} from '@accounts/types';
import { type AccountsClient } from './accounts-client';
export interface TransportInterface {
client: AccountsClient;
createUser(user: CreateUser): Promise<CreateUserResult>;
authenticateWithService(
service: string,
authenticateParams: {
[key: string]: string | object;
}
): Promise<boolean>;
loginWithService(
service: string,
authenticateParams: {
[key: string]: string | object;
}
): Promise<LoginResult>;
logout(): Promise<void>;
getUser(): Promise<User>;
refreshTokens(accessToken: string, refreshToken: string): Promise<LoginResult>;
verifyEmail(token: string): Promise<void>;
sendResetPasswordEmail(email: string): Promise<void>;
sendVerificationEmail(email: string): Promise<void>;
resetPassword(token: string, newPassword: string): Promise<LoginResult | null>;
addEmail(newEmail: string): Promise<void>;
changePassword(oldPassword: string, newPassword: string): Promise<void>;
impersonate(token: string, impersonated: ImpersonationUserIdentity): Promise<ImpersonationResult>;
requestMagicLinkEmail(email: string): Promise<void>;
}