lockbyte
Version:
Enterprise-grade password hashing and user authentication library with Argon2-inspired algorithm, memory-hard functions, and comprehensive security features
49 lines • 1.28 kB
TypeScript
import { CryptoConfig } from './crypto';
export interface User {
id: string;
email: string;
hashedPassword: string;
hashVersion: string;
algorithm: string;
createdAt: Date;
lastLogin?: Date;
}
export interface AuthResult {
success: boolean;
user?: User;
error?: string;
sessionToken?: string;
}
export interface RegistrationData {
email: string;
password: string;
}
export interface LoginData {
email: string;
password: string;
}
export declare class UserAuth {
private crypto;
private users;
private sessions;
constructor(cryptoConfig?: Partial<CryptoConfig>);
private generateUserId;
private generateSessionToken;
private validateEmail;
private validatePassword;
register(data: RegistrationData): Promise<AuthResult>;
login(data: LoginData): Promise<AuthResult>;
logout(sessionToken: string): boolean;
validateSession(sessionToken: string): {
valid: boolean;
user?: User;
};
changePassword(sessionToken: string, oldPassword: string, newPassword: string): AuthResult;
private getUserByEmail;
private getUserById;
getUserStats(): {
totalUsers: number;
activeSessions: number;
};
}
//# sourceMappingURL=auth.d.ts.map