パスワードハッシュ化, 戻り値をトークンに, login実装

This commit is contained in:
rca 2024-06-16 21:23:09 +09:00
parent 297e0c3df4
commit 004f57d3e7

View File

@ -1,20 +1,38 @@
import { Prisma, PrismaClient, User } from "@prisma/client";
import prisma from "@src/prisma";
import bcrypt from "bcrypt";
import { issueTokenByUserId } from "@src/utils/tokenUtils";
async function registUser(email: string, password: string): Promise<String> {
function registUser(email: string, password: string): Promise<String> {
const hashedPassword = bcrypt.hashSync(password, 10);
const registUser = prisma.user.create({ // TODO: バリデーション, ハッシュ化, その他
data: {
email,
password,
password: hashedPassword,
name: email,
}
});
return registUser.then((user) => {
return user.id
const user = await registUser;
return issueTokenByUserId(user.id);
}
async function loginUser(email: string, password: string): Promise<String | null> {
const user = await prisma.user.findUnique({
where: {
email: email
}
});
if(!user) {
return null;
}
if(bcrypt.compareSync(password, user.password)) {
return issueTokenByUserId(user.id);
} else {
return null;
}
}