UNPKG

realm-object-server

Version:

Realm Object Server

72 lines (71 loc) 2.4 kB
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; }