const { email, password, confirmpassword, name } = req.body;
입력값을 해당하는 컬럼명에 값을 변수에 저장
const user = await prisma.users.create({
data: {
email,
password: hashedPassword,
confirmpassword: hashedCPassword,
name,
},
});
새로운 사용자 정보를 데이터베이스에 저장
const isExistUser = await prisma.users.findFirst({where: { email }});
if (isExistUser) {
return res.status(409).json({ message: "이미 존재하는 이메일입니다." });
}
입력한 이메일이 데이터베이스에 있는지 찾아서 만약 있다면 error message를 return
yarn add bcrypt
const hashedPassword = await bcrypt.hash(password, 10);
const hashedCPassword = await bcrypt.hash(confirmpassword, 10);
비밀번호를 암호화하기 위해 bcrypt 설치 후, 비밀번호를 넣고, 얼마나 복잡하게 만들지 결정
if (email.length === 0) {
return res.status(400).json({ errorMessage: "이메일을 입력하세요." });
} else if (name.length === 0) {
return res.status(400).json({ errorMessage: "이름을 입력하세요." });
}
// 이메일 또는 비밀번호를 입력하지 않으면 error
let com = "";
for (let i=email.length-4; i<email.length; i++) {
com += email[i];
}
if (com !== '.com') {
return res.status(400).json({message : "이메일 형식이 틀립니다."});
}
// 이메일 형식을 위해서 뒤에 .com 을 붙이지 않으면 error
if (password.length !== 6) {
return res.status(400).json({ message: "비밀번호는 최소 6글자 이상 입력하세요." });
}
// 비밀번호를 6자리 이상 입력하지 않으면 error
if (password !== confirmpassword) {
return res.status(400).json({ message: "비밀번호가 일치하지 않습니다." });
}
//비밀번호와 비밀번호 확인이 맞지 않다면 error
여러가지 유효성검사를 통해 올바른 형식으로 작성할 수 있도록 해주었다.
brcypt를 통해 비밀번호와 비밀번호 확인을 암호화를 해서 데이터베이스에 저장을 해서
만약 유출되더라도 사용자의 정보를 보호할 수 있다.