Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 웹소켓
- socketIO
- 쿠키관리
- ReactQuill
- Nodejs
- 비디오스트리밍
- 인스타그램앱만들기
- pyqt5
- state전역관리
- 인스타그램API
- APIroutes
- 넥스트JS13
- nextjs
- PlanetScale
- 비디오전송
- mysqlworkbench
- 넥스트js
- nextjs13
- 플래닛스케일
- next js
- ReactContextAPI
- expressjs
- 페이스북개발자
- reactjs
- 앱비밀번호
- API루트
- nodemailer
- pyinstaller
- 노드메일러
- 리액트
Archives
- Today
- Total
Timpossible history
[Node JS] Nodemailer 사용 시 필요한 앱 비밀번호 설정 본문
- 앱 비밀번호가 필요한 이유
- 앱 비밀번호 설정 방법
앱 비밀번호가 필요한 이유
Nodemailer를 사용해서 이메일을 보내는 기능을 구현한 웹사이트나 어플리케이션은 보안이 중요하다. 웹사이트든 어플리케이션이든 이메일을 보내려면 계정이 필요하니 소스코드에 계정과 비밀번호를 기록해놓아야 하는데 이는 보안에 다소 문제가 생길 수 있기에 계정의 비밀번호가 아닌, 계정의 부분적인 권한을 허가받은 어플리케이션 전용 비밀번호를 발급받아서 사용하는 것이 좋다.
- 보안 강화
- 권한 제어
- 계정 보호
- 2단계 인증 활성화
보통 사용자들은 gmail이든 naver든 인스타그램이든 그 어떤 계정을 같은 아이디와 비밀번호로 사용하는게 대부분이니 하나의 계정이 뚫리면 나의 개인정보가 담긴 모든 계정들이 같이 뚤릴 수 있기 때문에 보안을 더 강화시키고 앱 비밀번호를 쓴다고 보면 되겠다.
앱 비밀번호 설정 방법
- Gmail 계정 로그인한다.
- 우측 상단에 프로필 클릭한 후, '구글 계정 관리'를 클릭한다.
- 간단하게, '앱 비밀번호'를 검색한다.
- 계정 인증을 하라고 한다면 인증을 하고 들어간 후, 앱 이름을 설정해주고 앱 비밀번호를 받는다
- 16자리의 앱 비밀번호가 나오면, 잘 메모해놓고 고이 모셔놓는다(한 번 밖에 안 보여주니까 정신차려야 한다.)
Nodemailer에서 앱 비밀번호 설정
const nodemailer = require('nodemailer');
// Gmail 앱 비밀번호로 로그인할 transporter 생성
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your.email@gmail.com',
pass: 'your-app-specific-password', // Gmail에서 생성한 앱 비밀번호
},
});
// 이메일 전송 설정
const mailOptions = {
from: 'your.email@gmail.com',
to: 'recipient.email@example.com',
subject: '테스트 이메일',
text: '안녕하세요, 이것은 테스트 이메일입니다.',
};
// 이메일 전송
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.error('이메일 전송 실패:', error);
} else {
console.log('이메일 전송 성공:', info.response);
}
});
이렇게 사용자의 계정과 앱 비밀번호를 설정해주면 완료.
보안 강화
앱 비밀번호는 주기적으로 변경해서 설정해주면 보안이 더욱 강화된다.
'백엔드 > Node JS' 카테고리의 다른 글
[Node JS] Express JS, 서버에서 클라이언트로 동영상 보내기(Feat. Streaming) (0) | 2024.02.29 |
---|---|
[Express JS] Socket.IO로 실시간 화상 채팅 구성(feat. WebRTC) (0) | 2024.01.04 |
[Express JS] Socket.IO 이용해서 실시간 채팅 어플리케이션 구성 (0) | 2024.01.03 |