해시를 만드는 함수

omnigi·2022년 3월 30일
0

백엔드

목록 보기
7/8

해시를 만드는 함수와 해시를 검증하는 함수를 만들기 위해서는 아래의 모듈을 설치해주어야합니다!

yarn add bcrypt

모델 메서드 만들기

모델 메서드는 모델에서 바로 사용할수 있는 함수를 말해요! 모델 메서드는 두가지 종류가 있습니다.

  1. 인스턴스 메서드 = 인스턴스(할당된 부분)에서 사용 가능 함수
  2. 스태틱 메서드 = 모델에서 바로 사용할 수 있는 함수

인스턴스 메서드, 스태틱 메서드 구분

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;

0개의 댓글