강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

노른자님의 프로필 이미지
노른자

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

로그인 문제 해결하기

성능상 어느쪽이 더 좋을까요?

작성

·

164

0

제로초님 방식대로 req.login쪽에 User.findOne을 새로하는것과 LocalStrategy쪽의 User.findOne에 처음부터 include를 모두 설정해주는것 중에 어떤게 성능이 좋나요?

답변 2

0

노른자님의 프로필 이미지
노른자
질문자

module.exports = () => {
  passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password',
  },async(email,password,done)=>{
    try{
      const user = await User.findOne({
        where : {email},
        include : [{
          model: Post,
        },{
          model: User,
          as: 'Followers',
          attributes: ['id','nickname']
        },{
          model: User,
          as: 'Followings',
          attributes: ['id','nickname']
        }]
      });
      if(!user){
        return done(null, false, { message : `가입되지 않는 이메일입니다.`})
      }
      if(user.provider !== 'local'){
        return done(null, false, { message : `이미 가입된 회원입니다. ${user.provider}(으)로 로그인 해주시기 바랍니다.`})
      }
      const result = await bcrypt.compare(password, user.password);
      if(result){
        return done(null, user);
      }
      return done(null, false, {message: '비밀번호가 일치하지 않습니다.'})
    }catch(err){
      console.error(err);
      return done(err);
    }
  }))
}
이 코드 입니다.
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

유의미한 차이는 없습니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

LocalStrategy에서 어느쪽을 말씀하시는 건가요?

노른자님의 프로필 이미지
노른자

작성한 질문수

질문하기