2018-02-19 19:07:19 +01:00
|
|
|
import { TwoFactorProviderType } from '../enums/twoFactorProviderType';
|
2018-02-02 04:55:49 +01:00
|
|
|
|
2018-02-19 19:07:19 +01:00
|
|
|
import { AuthResult } from '../models/domain/authResult';
|
2018-08-14 21:12:10 +02:00
|
|
|
import { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';
|
2018-02-02 04:55:49 +01:00
|
|
|
|
2018-01-23 21:58:13 +01:00
|
|
|
export abstract class AuthService {
|
2018-02-02 04:55:49 +01:00
|
|
|
email: string;
|
|
|
|
masterPasswordHash: string;
|
2019-05-27 16:29:09 +02:00
|
|
|
twoFactorProvidersData: Map<TwoFactorProviderType, { [key: string]: string; }>;
|
2018-04-04 20:18:42 +02:00
|
|
|
selectedTwoFactorProviderType: TwoFactorProviderType;
|
2018-02-02 04:55:49 +01:00
|
|
|
|
|
|
|
logIn: (email: string, masterPassword: string) => Promise<AuthResult>;
|
|
|
|
logInTwoFactor: (twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,
|
|
|
|
remember?: boolean) => Promise<AuthResult>;
|
2018-05-16 03:11:20 +02:00
|
|
|
logInComplete: (email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,
|
|
|
|
twoFactorToken: string, remember?: boolean) => Promise<AuthResult>;
|
2018-01-23 21:58:13 +01:00
|
|
|
logOut: (callback: Function) => void;
|
2018-05-16 03:11:20 +02:00
|
|
|
getSupportedTwoFactorProviders: (win: Window) => any[];
|
2018-02-02 04:55:49 +01:00
|
|
|
getDefaultTwoFactorProvider: (u2fSupported: boolean) => TwoFactorProviderType;
|
2018-08-14 21:12:10 +02:00
|
|
|
makePreloginKey: (masterPassword: string, email: string) => Promise<SymmetricCryptoKey>;
|
2018-01-23 21:58:13 +01:00
|
|
|
}
|