JWT

고은아·2023년 6월 29일
0

TIL

목록 보기
18/49
  • 기존의 토큰 방식 인증은 다이어그램에 표시된 것처럼 토큰은 이후의 모든 서비스 호출에 사용
  • 서비스를 받기 위해서는 토큰의 유효성을 확인하여 세부 정보를 쿼리
  • 참조에 의한 호출(By Reference) 형태로 모든 서비스는 항상 상호 작용할 때 다시 접속해야 함

Microservice With JWT

  • JWT 와 같이 값에 의한 호출이 가능한 토큰이 필요
  • 토큰이 필요한 모든 정보를 포함하고 있어 참조(적어도 인증 및 권한 부여를 위해)가 필요없기 때문에 마이크로서비스 자체에서 유효성을 검증해야 함

JWT Process

  1. 사용자가 id와 password를 입력하여 로그인을 시도
  2. 서버는 요청을 확인하고 secret key를 통해 Access token을 발급
  3. JWT 토큰을 클라이언트에 전달
  4. 클라이언트에서 API 을 요청할때 클라이언트가 Authorization header에 Access token을 담아서 보냄
  5. 서버는 JWT Signature를 체크하고 Payload로부터 사용자 정보를 확인해 데이터를 반환
  6. 클라이언트의 로그인 정보를 서버 메모리에 저장하지 않기 때문에 토큰기반 인증 메커니즘을 제공
  • 인증이 필요한 경로에 접근할 때 서버 측은 Authorization 헤더에 유효한 JWT 또는 존재하는지 확인
  • JWT에는 필요한 모든 정보를 토큰에 포함하기 때문에 데이터베이스과 - 같은 서버와의 커뮤니케이션 오버 헤드를 최소화 할 수 있음
    Cross-Origin Resource Sharing (CORS)는 쿠키를 사용하지 않기 때문에 JWT를 채용 한 인증 메커니즘은 두 도메인에서 API를 제공하더라도 문제가 발생하지 않음
  • 처음 사용자를 등록할 때 Access token과 Refresh token이 모두 발급되어야 함

0개의 댓글

관련 채용 정보