Server #2 :: JWT (JSON Web Token)

해다·2022년 4월 9일
0

etc.

목록 보기
11/21
post-thumbnail

🙊 잘못된 정보가 있으면 댓글 달아주세요!


🤔 JWT가 뭐야?

솔직히 처음 봤을 때 다 JMT 생각했을 것 같다. 나 이거 완전 첨 들어보는데 ㅎㅎㅎ;;;

JSON WEB Token의 준말인 JWT는 JSON 형식으로 전자 서명된 웹 토큰을 말한다.
JSON은? Javascript 의 객체(Object)형태로 구조화된 데이터를 표현하기 위한 문자 기반 포맷을 뜻한다. 그렇다는 말은?

const Obj ={ name: "이태민", group: "샤이니" }

와 같이 key(위의 예제에서는 name, group)값과 valuse(위의 예제에서는 "이태민"과 "샤이니") 가 1:1 쌍으로 되어있는 형태를 말한다.
전자 서명은 서명이 전자식으로 된 것이고 고유의 시그니쳐이고...
그러면 토큰은? 최근에 암호화폐가 각광받으면서 토큰이라는 말도 같이 따라다니는 걸 쉽게 볼 수 있는데 정확히는 access 토큰을 말하는 것이며 로그인에 성공할 경우 서버는 유저에게 토큰을 발행해준다. 이 토큰을 가지고 있는 유저에게 해당 유저만이 볼 수 있는 정보에 접근이 가능하게 해주는 것이다.

🤔 무슨 말인지 모르겠는데...

그냥 로그인이 성공한 경우에 서버에서 유저에게 주는 출입증 같은 것이다.

구조는 Header, PayLoad, Signature 로 이루어져있다. 솔직히 지금 보면 무슨 말인지 모르겠고...
어쨌든 여기서 중요한 것은 이 토큰의 경우 BASE64 방식으로 암호화(Encoding)가 되었고, BASE64는 공개된 암호화 알고리즘이기 때문에 암호화된 내용을 바로 복호화(Decoding) 할 수 있다는 것이다. 그렇다면 이 토큰에 아주 치명적이고 중요한 내용은 넣어서 안되겠다.

😨 그런데 이 토큰을 써도 되는 거야?

그렇긴 하지만 JWT가 가지고 있는 장점도 분명하다. 사용자 인증에 필요한 모든 정보가 토큰에 포함되어있기 때문에 별도로 데이터베이스에 접근해도 되지 않아서 비교적 로그인 시도 시 속도가 빠르고 쉽게 로그인할 수 있다. 다른 용례도 있지만 그렇기 때문에 주로 로그인 과정에서 쓰이는 방식이다.

profile
잘하는 건 아닌데 포기하진 않을거야

0개의 댓글