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

khhan1990님의 프로필 이미지
khhan1990

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #11 로그인 기능 with Bcrypt (1)

bcrypt compare password 에 관한 질문이 있습니다!

작성

·

591

0

선생님 안녕하세요!

bcrypt를 통해 compare password하는 부분에서 문제가 발생하여 질문드립니다.

우선 제 git주소는 아래와 같습니다.
https://github.com/Kyu-holic/new-boiler-plate.git

postman에서 register 라우터를 사용해서 유저를 만들면 아래와 같이 등록은 잘 됩니다.

그런데, login 라우터를 사용해서 login을 하려고 하면 계속해서 비밀번호가 틀렸다는 메세지가 뜨는데,
send를 통해서 보니 사진처럼 "data and hash must be strings"라는 에러 메세지가 발생합니다.

이에 대한 해결책을 찾다보니 아래의 주소에서 나오는 것 처럼 bcrypt를 통해 compare password를 할 때 계속해서 false 메시지가 뜨는 사람들이 꽤 있는 것 같았습니다.

https://github.com/kelektiv/node.bcrypt.js/issues/685

그러다 아래 주소의 사이트에서 나온 답변처럼
(6번 문항 solution2에 나와있습니다)

https://copyprogramming.com/howto/bcrypt-comparesync-is-always-returning-false

bcrypt.compare(plainPassword, this.password ....)
에서plainPassword 제일 앞에 백틱을 넣어주니
잘 해결이 됩니다.

이건 어떤 이유에서 이런 현상이 발생하는 것인지,

그리고 왜 제 코드는 선생님 코드와 똑같이 했을 때는 안되고, 저렇게 해야만 되는 것인지 궁금합니다.

그 사이에 bcrypt나 node의 버전이 업그레이드 되어 뭔가 변한 것이 있는 걸까요?

확인 부탁드리겠습니다!

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
khhan1990님의 프로필 이미지
khhan1990

작성한 질문수

질문하기