해시를 만드는 함수와 해시를 검증하는 함수를 만들기 위해서는 아래의 모듈을 설치해주어야합니다!
yarn add bcrypt
모델 메서드는 모델에서 바로 사용할수 있는 함수를 말해요! 모델 메서드는 두가지 종류가 있습니다.
- 인스턴스 메서드 = 인스턴스(할당된 부분)에서 사용 가능 함수
- 스태틱 메서드 = 모델에서 바로 사용할 수 있는 함수
import mongoose, {Schema} from "mongoose"
import bcrypt from "bcrypt"
const UserSchema = new Schema({
username: String,
hashedPassword: String,
});
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; //true/ false
}
UserSchema.static.findByUsername = //스태틱
function(username){
return this.findOne({username});
};
const User = mongoose.model("User", UserSchema);
export default User;