동작이노베이션 캠프 WIL1

jina Seo·2022년 7월 17일
0

WIL을 거창하게! 쓰고싶지만 우선 내가 이해할 수 있는 만큼만 이해하고 내 방식대로 쓰겠다..!

jwt를 왜 알아야할까?

로그인기능등을 구현할 수 있다
인증을 통해 서비스는 유저를 검증할 수 있음
-> 인증방식을 만들려면 쿠키 세션 토큰 JWT를 알아야한다!

jwt?

인증받은 사용자들에게 토큰을 발급하고, 서버에 요청을 보낼 때 header에 토큰을 함께 보내는 인증 방식.

사용자가 로그인하면, 서버에서 계정 정보를 검증한 후 Token을 발급한다. 사용자는 Token을 저장한 후, 서버에 요청할 때 http header에 해당 토큰을 함께 전송한다. 그 후 서버에서 토큰을 검증하고, 요청에 응답한다.

jwt에 대해 자세히 파보자

구성
1. 헤더 : 해시알고리즘, 토큰 타입
2. 페이로드 : 토큰에서 사용할 정보의 조각들인 클레임이 담겨있음 3가지로 나누어지고 json형태(key/value)로 정보 담을 수 있음
3. 시그니처
: 토큰 인코딩하거나 유효성 검증할때 사용하는 고유한 암호화 코드
위 셋을 합친 string이 jwt임

장점
1. 세션/쿠키는 별도의 저장소의 관리가 필요하지만 jwt는 발급 후 검증만 하면 되기때문에 저장소가 필요없다.
2. 확장성이 뛰어나다. 토큰 기반으로 하는 다른 인증시스템에 접근이 가능하다.
3. 세션을 이용한 방식과 달리 DB에 계속 정보가 매칭되는지 확인하러 가지않아도 되어서 서버측 부하를 낮출 수 있음

단점
1. 페이로드에 세종류의 클레임을 저장하기때문에 정보가 많아질수록 토큰의 길이가 늘어나 네트워크에 부하를 줄 수 있음
2. 페이로드 자체는 암호화된 것이 아니라 BASE64로 인코딩된 것. 중간에 payload를 탈취하여 디코딩하면 데이터를 볼 수 있으므로 jwe로 암호화하거나 페이로드에 중요데이터를 넣으면 안됨
3. jwt는 stateless하여 한 번 만들어지면 제어가 불가능. 토큰을 임의로 삭제할 수 없으므로 토큰 만료시간을 넣어줘야함


api

프로그램들이 서로 소통하는 방법 (메뉴판...!)

구성
1. 요청방식(get/post)
2. 어떤 자료 요청할건지 (웹툰보여줘)
3. 자료요청에 필요한 추가정보 (id, 이름, 몇화 볼건지 등)

출처
https://blog.naver.com/dktmrorl/222410946965
https://www.youtube.com/watch?v=tosLBcAX1vk&t=196s
https://www.youtube.com/watch?v=ckSdPNKM2pY

profile
운동하는 개발자가 꿈입니다?

0개의 댓글