// src/models/user.js 파일 생성해 작성
import mongoose, { Schema } from "mongoose";
const UserSchema = new Schema({
username : String,
hashedPassword : String,
})
const User = mongoose.model('User', UserSchema);
export default User;
터미널> yarn add bcrypt
// src/models/user.js
import bcrypt from 'bycrpt';
...
UserSchema.methods.setPassword = async function(password){
const hash = await bcrypt.hash(password, 10);
this.hashedPassword = hash;
}
UserSchema.methods.checkPassword = async function(password) {
const result = await bcrypt.compare(password, this.hashedPassword);
return result;
}
...
// src/models/user.js
...
UserSchema.statics.findByUsername = function(username) {
return this.findOne({username})
}
...
블로그 글 정말 잘 읽었습니다. DB에 플레인 상태로 비밀번호를 저장하는 위험성을 새삼 느꼈고, bcrypt 라이브러리를 이용한 해시 생성과 검증, 그리고 데이터 조회 메서드에 대해 설명해주셔서 감사합니다. 항상 좋은 정보 공유해주셔서 감사합니다!