Abstract service
Now, let's decouple this functionality into its own service.
nest g res authnest g s auth/hashing@Injectable()
export abstract class HashingService {
abstract hash(data: string | Buffer): Promise<string>;
abstract compare(data: string | Buffer, encrypted: string): Promise<boolean>;
}nest g s auth/hashing/bcrypt --flat@Injectable()
export class BcryptService implements HashingService {
async hash(data: string | Buffer) {
const salt = await genSalt();
return hash(data, salt);
}
compare(data: string | Buffer, encrypted: string) {
return compare(data, encrypted);
}
}Last updated