
nodemailer lib로 이메일로 회원가입 이메일 인증 코드를 전송하는 기능을 구현하던 도중에 이런 에러를 만났다.

nodemailer를 사용할 때 대부분 google의 gmail을 활용할텐데, gamil의 경우에는 auth부분에서 pass 부분, 즉 비밀번호를 입력하는 부분에 google 계정 비밀번호를 입력하는 것이 아니라, 앱 비밀번호라는 별도의 비밀번호를 생성해서 넣어줘야한다고 한다.
앱 비밀번호를 생성하기 위해서는 google 2단계 인증을 활성화해야 한다.

일반적으로는 이렇게 앱 비밀번호 항목이 있는 것 같다. 근데 난 이 항목이 보이지 않았다.

나의 경우에는 이런식으로만 표시되고 앱 비밀번호라는 항목이 없어서 처음에 당황했는데, 당황하지 않고 그냥 맨 위에 검색창에다가 앱 비밀번호라고 검색하면 된다.
그리고 만약 검색했는데 안나온다면 그건 아직 2단계 인증 활성화를 하지 않은 상태여서 그럴 가능성이 높다. 2단계 인증을 활성화했는지 확인해보라.


앱 비밀번호에 들어가서 만들고싶은 앱의 이름을 입력하면 된다.
만들기를 누르면, 비밀번호가 표시되는데 그대로 복사해서 에디터로 돌아가 붙여넣기 하면 된다. 공백 따로 지우지 않아도 괜찮다.

다른 사람과 공유하면 안된다. 나는 만들고 바로 지웠다.

여기 pass 부분에 방금 생성한 비밀번호를 넣고 진행하면 된다. 그리고 웬만하면, 아니 웬만하면이 아니라 꼭 환경변수로 분리해서 적용하기 바람. 그리고 코드 맨 위에 require('dotenv').config() 실행하는 거 잊지 말기.