22 lines
No EOL
684 B
TypeScript
22 lines
No EOL
684 B
TypeScript
import { Player } from "@prisma/client"
|
|
import bcrypt from "bcrypt"
|
|
|
|
export default async function checkPasswordIsValid<T>(payload: T & { player: Player, password: string }) {
|
|
const { player, password } = payload
|
|
|
|
// Validate for correct password
|
|
return bcrypt.compare(password, player.passwordHash)
|
|
.then(async result => {
|
|
if (!result) {
|
|
return Promise.reject({
|
|
message: 'Passwords do not match!',
|
|
statusCode: 401,
|
|
solved: true,
|
|
})
|
|
}
|
|
return {
|
|
...payload,
|
|
passwordIsValid: true
|
|
}
|
|
})
|
|
} |