[NJ(307)]고유 이메일 주소를 통해 가입 절차 개선하기

이유정·2024년 4월 24일
0

Next.js (pages router)

목록 보기
37/51
post-custom-banner

지난 시간

사용자 생성함.
그런데 지금은 동일한 이메일 주소로 같은 사용자를 여러번 생성할 수 있는 상태임.
=> 이러면 안됨

동일한 이메일로 같은 사용자 어려번 생성 방지

api/auth/signup.js 파일에서
특정 이메일을 쓰는 사용자가 이미 존재하는지 확인해야 한다.

데이터 베이스 연결

<---이쪽에 코드 작성---> 

비밀번호 해싱 및 사용자 저장 

findOne을 사용해서 하나의 문서를 찾을 수 있음.
findOne에 객체를 전달한다. => 해당 문서를 찾을 방법을 설명
바로, 키-값 쌍

이때 키는 email, password, _id


우리는 이메일을 검색할 것.


값으로는 data에서 얻어온 email을 넣어줄 것.

이게 프로미스를 반환하니 await을 반환

만약, 그 이메일의 사용자를 못찾을 경우 undefined가 된다. 찾으면, user 객체가 된다.
그러니, 값이 있을 때는 return으로 반환해서 다른 코드 실행을 막는다.


그리고, status 값 보내면서 message도 보낸다 !

그리고, 데이터베이스 연결을 닫는다. 항상 이 작업을 해줘야 함.
client.close();


맨 아래에도 넣어준다.
client.close();

결과


똑같은 사용자 생성하려 했을 때 에러 확인.


데이터 베이스도 확인해보면, 모든 이메일 주소가 하나씩만 존재.

profile
강의 기록 블로그
post-custom-banner

0개의 댓글