21 lines
688 B
TypeScript
21 lines
688 B
TypeScript
|
import { HashDriverContract } from "@ioc:Adonis/Core/Hash";
|
||
|
// const bcrypt = require("bcrypt");
|
||
|
import bcrypt from "bcryptjs";
|
||
|
|
||
|
const saltRounds = 10;
|
||
|
export class LaravelHash implements HashDriverContract {
|
||
|
public async make(value: string) {
|
||
|
const _hashedValue = bcrypt.hashSync(value, saltRounds);
|
||
|
return _hashedValue;
|
||
|
}
|
||
|
|
||
|
public async verify(hashedValue: string, plainValue: string) {
|
||
|
let newHash: string;
|
||
|
if (hashedValue.includes("$2y$10$")) {
|
||
|
newHash = hashedValue.replace("$2y$10$", "$2a$10$");
|
||
|
} else {
|
||
|
newHash = hashedValue;
|
||
|
}
|
||
|
return await bcrypt.compareSync(plainValue, newHash);
|
||
|
}
|
||
|
}
|