2013-08-29 8 views
1

nodemailer 모듈 (node.js 앱에서 전자 메일을 보낼 수 있음)은 Gmail 계정에 대한 XOAUTH2 인증을 지원합니다. authuser:pass: 매개 변수를 지정하는 대신 일반 이메일 알림을 위해 이것을 사용하려는 이유는 무엇입니까? 암호가 일반 텍스트로 저장되지만 결코 전파되지는 않습니다. 또한 XOAUTH2 메서드는 clientSecret: 매개 변수를 필요로하는 것으로 보입니다.이 매개 변수는 공개되지 않을 수도 있습니다. 그렇다면 이점은 무엇입니까?nodemailer에서 XOAUTH2의 장점

비슷한 질문 : 인증 정보를 원격 저장소에 푸시하지 않고 앱에 포함하려면 어떻게해야하나요? 거기에 힘내 그 라인을 무시하는 방법이 있나요?

답변

4

XOAUTH를 사용하면 사용자를 대신하여 전자 메일을 보내고 싶을 때 유용합니다 (예 : 보낸 사람이 응용 프로그램이 아닌 사용자 인 것처럼). 암호를 묻는 대신 사용자에게 권한을 요청할 수 있습니다 OAuth 메커니즘을 통한 애플리케이션 결과로 생성되는 클라이언트 비밀은 사용자에게만 알려져 있으며 사용자의 전자 메일에 액세스하기위한 용도로만 사용할 수 있습니다. 사용자는 언제든지 이러한 클라이언트 토큰을 취소 할 수 있습니다.

사용자 대신 자신의 자격 증명을 사용하여 메일을 보내지 않으려면 XOAUTH를 사용할 필요가 없습니다.

+0

감사합니다. 질문의 두 번째 부분에 대한 아이디어가 있습니까? 로컬 및 프로덕션 환경에서 공개 자격 증명 (GitHub)을 유지하면서 인증 자격 증명을 "숨기는"방법은 무엇입니까? – mart1n

+0

중요한 데이터를 숨기려면 환경 변수를 사용하십시오. 예를 들어 서버의 환경 변수 CLIENT_SECRET을 설정 한 다음 코드에서 'process.env.CLIENT_SECRET'으로 사용하십시오. – Andris

+0

아, 멋지 네요. 생각하지 않았어. 감사! – mart1n