realm-object-server
Version:
72 lines (71 loc) • 2.4 kB
TypeScript
import { AuthProvider } from "../AuthProvider";
import { User } from "../../realms/AdminRealm";
export interface PasswordAuthProviderConfig {
autoCreateAdminUser?: boolean;
saltLength?: number;
iterations?: number;
keyLength?: number;
digest?: string;
emailHandler?: PasswordEmailHandler;
emailHandlerConfig?: BasicEmailHandlerConfig;
hashBufferSize?: number;
}
export interface BasicEmailHandlerConfig {
connectionString: string;
from: string;
baseUrl?: string;
resetActionConfig?: EmailActionConfig;
confirmActionConfig?: EmailActionConfig;
}
export interface EmailActionConfig {
subject: string;
textTemplate: string;
htmlTemplate: string;
}
export interface PasswordEmailHandler {
resetPassword?: (email: string, token: string, userAgent: any, remoteIp: string) => Promise<void>;
confirmEmail?: (email: string, token: string) => Promise<void>;
}
export interface ResetPasswordRequest {
action: "reset_password";
}
export interface CompleteResetRequest {
action: "complete_reset";
token: string;
new_password: string;
}
export interface RequestEmailConfirmation {
action: "request_email_confirmation";
}
export interface CompleteEmailConfirmation {
action: "confirm_email";
token: string;
}
export declare class PasswordAuthProvider extends AuthProvider {
name: string;
private readonly autoCreateAdminUser;
private readonly saltLength;
private readonly hashBuffer;
private readonly config;
private emailHandler?;
private iterations;
private keyLength;
private digest;
private passwordRealm;
constructor(config?: PasswordAuthProviderConfig);
start(): Promise<void>;
stop(): Promise<void>;
authenticateOrCreateUser(body: any): Promise<User>;
update(user: User, data: any): Promise<{}>;
updateProviderAccount(providerId: string, user: User, data: ResetPasswordRequest | CompleteResetRequest | RequestEmailConfirmation | CompleteEmailConfirmation, isAuthenticated: boolean, userAgent: any, remoteIp: string): Promise<any>;
deleteUser(userId: string): Promise<boolean>;
enhanceLog(body: any): string;
private updatePassword;
private requestEmailConfirmation;
private hashPassword;
private createSalt;
private comparePassword;
private attemptToRegister;
private attemptToLogin;
private fakeHash;
}