2023/07 14

node.js express 엑세스 토큰과 리프레시 토큰

Access Token | Refresh Token Access Token과 Refresh Token은 유저가 로그인 했을 때 발급되며 이후 해당 유저가 누구인지에 대해 인증하는 용도로 활용됩니다. 가령 마이페이지에 접속할 경우 본인이 누구인지에 따라 그에 맞는 마이페이지를 보여줘야 하므로 이럴 때 사용되곘죠?? workflow 로그인 시 엑세스 토큰 발급 + 리프레시 토큰 발급 (각각) 두 토큰 모두 쿠키로 전달하되 리프레시토큰은 DB에 {리프레시 토큰: userId} 형태로 저장 로그인 이후 물품 구매, 마이페이지 접속 등 본인이 누구인지 파악하기 위해 쿠키에 접근 쿠키에 두 토큰이 존재하는지 먼저 확인 try, catch문으로 엑세스 토큰과 리프레시 토큰 검증 결과를 boolean으로 받는다. (i..

Socket.io에 대해서 알아봅시다.

Socket.io Socket.io가 무엇인지, 어떤 기능에 활용되는지 공부합니다. 시작에 앞서 알아야할 부분 TCP와 UDP TCP란? 서버와 클라이언트 간 데이터 송수신을 위해 만들어진 프로토콜 연결 지향성 프로토콜이라고도 부르는데 그 이유는 서버와 클라이언트가 양방향으로 소통함으로서 데이터 요청 및 전송에 있어 차질이 없도록 하여 데이터의 누락 또는 순서가 뒤바뀌는 일을 방지하는 것, 즉 통신의 안정성을 바탕으로 한 신뢰에 중점을 두기 때문입니다. 가령 클라이언트가 데이터를 요청했고, 서버가 보내주는 과정에서 데이터가 누락되었다면 클라이언트에서 "누락됐다."라고 알려주면 서버가 다시 보내주는 방식으로 서로 소통하므로 아무래도 데이터 전송이 잘못된 가능성이 현저히 낮아 신뢰가 높아집니다. 하지만 UD..

nodemailer를 활용하여 인증 이메일 보내기

nodemailer에 대해서 정리해보자 회원 가입 과정에서 종종 거치게 되는 이메일 검증 절차를 구현해본다. const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ // 인증 서비스는 'gmail' 사용 service: 'gmail', // host를 gmail로 설정 host: 'smtp.gmail.com', port: 587, secure: false, auth: { // gmail 주소 입력, ex) 'testmail@gmail.com' user: NODEMAILER_USER, // gmail 패스워드 입력 pass: NODEMAILER_PASS, }, }); transporter 변수는 인증 메..

[WIL] 23.06.26 ~ 06. 30

프로젝트 회고 (공통) EJS 파일 사용 관련 어려움 백엔드에서 응답 받은 결과를 EJS 파일에 출력하는 과정에서 문법이 익숙하지 어려움이 있었다. 기존 프론트 구현 방식처럼 HTML에 javascript를 연동시켜서 페이지에 출력하는 방식과 EJS에 직접 백엔드 결과를 전달하는 방식을 모두 사용하게 되어 해당 부분에서 기능 구현이 다소 비효율적이게 된 것 같다. 추가 기능 구현에서의 어려움 업로드 된 이미지를 프론트에 출력하는 과정에서 이미지 사이즈가 일관성을 유지하도록 하기 위한 과정에서 어려움이 있었음 일관된 이미지 사이즈 출력 구현을 위해 리사이징을 시도하는 과정에서 sharp 패키지 사용을 시도했으나 input 관련 에러가 발생해서 구현에 한계에 부딪힘 이미지 리사이징 관련하여 AWS Lambd..