쵼쥬
쵼쥬의 개발공부 TIL
쵼쥬
전체 방문자
오늘
어제
  • 분류 전체보기 (276)
    • 코딩테스트 (192)
      • [알고리즘] 알고리즘 정리 (7)
      • [백준] 코딩테스트 연습 (126)
      • [프로그래머스] 코딩테스트 연습 (59)
    • Spring (71)
      • [인프런] 스프링 핵심 원리- 기본편 (9)
      • [인프런] 스프링 MVC 1 (6)
      • [인프런] 스프링 MVC 2 (4)
      • [인프런] 실전! 스프링 부트와 JPA 활용1 (7)
      • [인프런] 실전! 스프링 부트와 JPA 활용2 (5)
      • [인프런] 실전! 스프링 데이터 JPA (7)
      • [인프런] 실전! Querydsl (7)
      • JWT (5)
      • [인프런] Spring Cloud (17)
      • [인프런] Spring Batch (4)
    • Java (6)
      • [Java8] 모던인자바액션 (4)
      • [부스트코스] 웹 백엔드 (2)
      • [패스트캠퍼스] JAVA STREAM (0)
    • CS (6)
      • 디자인 패턴과 프로그래밍 패터다임 (2)
      • 네트워크 (4)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • jpa
  • 누적합
  • 백분
  • 위클리 챌린지
  • 비트마스킹
  • 알고리즘
  • 타임리프
  • 프로그래머스
  • spring
  • 백준
  • 스프링
  • MVC
  • 구현
  • 부스트코스
  • 자바
  • 코딩테스트
  • BFS
  • querydsl
  • Spring Data JPA
  • 인프런

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쵼쥬
Spring/JWT

JWT 소개

JWT 소개
Spring/JWT

JWT 소개

2022. 5. 17. 23:15

JWT(JSON Web Token)는 RFC 7519 웹 표준으로 지정이 되어있고 JSON 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token이라고 정의 할 수 있습니다.

Header, Payload, Signature로 구성되어있다.

aaaaaa.bbbbbbb.ccccccc -> (header.payload.signature)

  • Header : Signature를 해싱하기 위한 알고리즘 정보들이 담겨 있다.
  • Payload : 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들을 담고 있습니다.
  • Signature : 토큰의 유효성 검증을 위한 문자열입니다. 이 문자열을 통해 서버에서는 이 토큰이 유효한 토큰인지를 검증할 수 있습니다.

 

장점

  • 중앙의 인증 서버, 데이터 스토어에 대한 의존성 없음, 시스템 수평 확장 유리 
  • Base64 URL Safe Encoding > URL, Cookie, Header 어디에서든 사용 가능 

 

단점 

  • Payload의 정보가 많아지면 네트워크 사용량 증가, 데이터 설계 고려 필요
  • 토큰이 각 클라이언트에 저장되기 때문에 서버에서 클라이언트의 토큰을 조작할 수 없음

 


예제 프로젝트 생성

plugins {
   id 'org.springframework.boot' version '2.6.7'
   id 'io.spring.dependency-management' version '1.0.11.RELEASE'
   id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
}

repositories {
   mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
   implementation 'org.springframework.boot:spring-boot-starter-security'
   implementation 'org.springframework.boot:spring-boot-starter-validation'
   implementation 'org.springframework.boot:spring-boot-starter-web'
   compileOnly 'org.projectlombok:lombok'
   runtimeOnly 'com.h2database:h2'
   annotationProcessor 'org.projectlombok:lombok'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'
   testImplementation 'org.springframework.security:spring-security-test'
}

tasks.named('test') {
   useJUnitPlatform()
}

 

'Spring > JWT' 카테고리의 다른 글

회원가입, 권한검증  (0) 2022.05.27
DTO, Repository, 로그인  (0) 2022.05.25
JWT 코드, Security 설정 추가  (0) 2022.05.19
Security 설정, Data 설정  (0) 2022.05.18
    'Spring/JWT' 카테고리의 다른 글
    • 회원가입, 권한검증
    • DTO, Repository, 로그인
    • JWT 코드, Security 설정 추가
    • Security 설정, Data 설정
    쵼쥬
    쵼쥬

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.