Files
gridpilot.gg/core/identity/domain/services/PasswordHashingService.ts
2025-12-15 18:34:20 +01:00

26 lines
746 B
TypeScript

import { PasswordHash } from '../value-objects/PasswordHash';
/**
* Domain Service: PasswordHashingService
*
* Service for password hashing and verification.
*/
export interface IPasswordHashingService {
hash(plain: string): Promise<string>;
verify(plain: string, hash: string): Promise<boolean>;
}
/**
* Implementation using bcrypt via PasswordHash VO.
*/
export class PasswordHashingService implements IPasswordHashingService {
async hash(plain: string): Promise<string> {
const passwordHash = await PasswordHash.create(plain);
return passwordHash.value;
}
async verify(plain: string, hash: string): Promise<boolean> {
const passwordHash = PasswordHash.fromHash(hash);
return passwordHash.verify(plain);
}
}