[Web] JWT

Elen li·2023년 3월 28일
0

로그인 상태를 서버에서 처리하는데 사용할 수 있는 두 가지 (세션 / 토큰) 인증 방식이 있음

1. 세션 기반 인증 시스템

  • 서버가 사용자가 로그인 중임을 기억
  • 서버 -> 세션id 발급 -> 브라우저의 쿠키에 저장 -> 사용자 요청 -> 세션 저장소(메모리, 디스크, 데이터베이스)에서 세션 조회 -> 로그인 여부 결정 및 작업 처리 -> 응답
  • 단점: 서버의 인스턴스가 여러 개가 되었을 때, 모든 서버끼리 같은 세션을 공유해야 하므로, 세션 전용 데이터베이스를 만들어야 함

2. 토큰 기반 인증 시스템

  • 서버가 생성해 준 토큰(사용자의 로그인 정보가 들어있는 문자열)으로 유효한 사용자인지 검사 => 서명이 들어있음 (무결성 보장)
  • 토큰 (HMAC SHA256, RSA SHA256) 알고리즘 사용
  • 장점: 로그인 정보를 기억하기 위해 사용하는 리소스가 적음

JWT (JSON Web Token)

: 데이터가 JSON으로 이루어져 있는 토큰. 두 개체가 서로 안전하게 정보를 주고받을 수 있도록 웹 표준으로 정의된 기술

// 비밀키 생성
$ openssl rand -hex 64
profile
Android, Flutter 앱 개발자입니다.

0개의 댓글