최대 1 분 소요








학습 목표


  • 인증된 사용자인지를 증명하는 토큰 방식과 세션 방식의 차이점을 설명할 수 있다.
  • JWT(JSON Web Token)가 무엇인지 설명할 수 있다.
  • JWT의 구성 요소를 설명할 수 있다.
  • JWT의 동작 방식을 이해할 수 있다.



👨‍💻


  • 토큰을 클라이언트에 저장하는것이 괜찮을까?
    토큰은 유저 정보를 암호화 한 상태로 담을 수 있고, 암호화했기 때문에 클라이언트에 담을 수 있다.


JWT란?


Json Web Token의 약자로
Json 포맷으로 사용자에게 대한 속성을 저장하는 웹 토큰임.


JWT의 구조


AAA. / BBB. / CCC

[Header] / [Payload] / [Signature]


Header:

  1. 어떤 종류의 토큰인가?
  2. 어떤 알고리즘으로 암호화 하는가?


Payload

  1. 유저의 정보
  2. 권한을 부여 받았는가?
  3. 기타 필요한 정보




Signature

  1. Header, Payload를 base64인 코딩한 값과, salt값의 조합으로 암호화된 값.





토큰 기반 인증의 장점?


  1. Statelessness & Scalability (무상태성, 확장성)
    • 서버는 클라이언트에 대한 정보를 저장할 필요가 없다.

    • 토큰을 헤더에 추가함으로 인증 절차 완료

  2. 안정성
    • 암호화 한 토큰을 사용
    • 암호화 키를 노출할 필요가 없다.
  3. 어디서나 생성 가능
    • 토큰을 생성하는 서버가 꼭 토큰을 만들지 않아도 된다.
  4. 권한 부여에 용이
    • 토큰의 payload(내용물) 안에 어떤 정보에 접근 가능한지 정의
    • ex) 사진과 연락처 사용권한 부여/ 사진권한만 부여 / 연락처 권한만 부여

댓글남기기