06-02 JWT, Nginx

.·2022년 2월 25일

Express.js와 MongoDB로 웹서비스 만들기 3

JWT의 이해

JWT란?

JWT의 구성

  • header: 토큰의 타입(jwt), 데이터 서명 방식
  • payload: 전달되는 데이터
  • signature: 헤더와 페이로드의 전자서명

JWT는 Web Token, 데이터를 웹에서 사용하기 위한 스펙이므로 웹에서 문제없이 사용할 수 있는 문자열로만 구성된 base64 인코딩을 사용

JWT 예시

JWT와 보안

JWT 작동 방식

  1. 사용자 로그인
  2. 서버는 로그인된 유저 정보를 JWT로 생성하여 클라이언트에 전달
  3. 클라이언트는 전달받은 JWT를 이용하여 인증이 필요한 요청에 사용

JWT 사용 이유



Cookie란?

  • 웹 서비스에서 사용하는 정보를 클라이언트에 저장하고, HTTP 요청 시 이를 함께 전송하여, 클라이언트 정보를 서버에 전달하는 기술


JWT 로그인 구현하기(지금까지 설정했던 프로젝트에)

  1. 기존 세션으로 구현된 로그인 비활성화
  2. 로그인 로직에서 JWT 생성쿠키로 전달
  3. passport-jwt 패키지로 JWT 로그인 미들웨어 작성 및 사용

로그인 로직에 JWT 토큰 생성 및 쿠키 전달

passport-jwt 사용하기

JWT 미들웨어 추가

로그아웃



회원 비밀번호 찾기 구현

메일 발송기능 구현 방법

SMTP란?


Node.js에서 메일 발송하기

Nodemailer + Gmail 사용하기


비밀번호 초기화 기능 개발

초기화 후 로그인 시 비밀번호 변경 요청



OAuth2.0의 이해

OAuth란?

OAuth 동작 방식

  1. 서비스 제공자에게 인증 요청
  2. 인증 완료 후 사용자 정보를 요청한 서비스로 전달
  3. 인증 정보를 이용해 서비스 제공자의 데이터 사용

OAuth 사용 예시

  • 구글 캘린더 연동 서비스
  1. 구글 OAuth 인증 요청
  2. 인증된 OAuth Token을 기록
  3. OAuth Token을 사용하여 구글 캘린더 API 사용

OAuth와 로그인



구글 로그인 구현하기

구글 로그인 구현 순서

passport-google-oauth20

passport-google-oauth20 작성



추가 - Nginx 사용하기

Nginx란?

Nginx를 사용하는 이유

Nginx + Node.js

Nginx + Node.js 설정 파일 예시




이미지 출처 - Elice

0개의 댓글