Open yyeonjju opened 5 months ago
https://80000coding.oopy.io/9a56cae9-8626-4025-b3f9-c02251980d0f
https://www.cloudflare.com/ko-kr/learning/privacy/what-are-cookies/
https://velog.io/@bagt/TCPIP-%EC%86%A1%EC%88%98%EC%8B%A0-%EA%B5%AC%EC%A1%B0
https://www.cloudflare.com/ko-kr/learning/privacy/what-are-cookies/
https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
인증 & 인가
인증
인가
HTTP
HTTP이란?
Hypertext Transfer Protocol
참고 : TCP 통신에 대해서 알아보자…
HTTP 동작 방법
Header
Body
Header
Body
HTTP의 특징
비연결지향성 (connectionless)
무상태성 (stateless)
쿠키 Cookie
쿠키 어디에 저장?
쿠키 어떤 용도로 사용?
쿠키 동작 방식
하지만 쿠키만으로 로그인을 구현하는 것은 한계가 있습니다. 쿠키는 네트워크를 통해 전달되기 때문에 중간에 쿠키를 탈취할 수 있다는 취약점이 있습니다. 개발자 도구를 켜서 바로 볼수도 있기 때문에 중요한 사용자 정보라도 저장되어 있으면 큰일. 이를 보완하고자 우리는 세션(Session) 을 사용합니다.
세션
서버
에 저장이 됩니다.쿠키
입니다.세션의 동작 과정
특징, 장점/단점
세션 ID를 담는 ‘쿠키’에
중요한 정보
를 담지 않기 때문에 http 요청 중 노출되어도 크게 위험하진 않지만쿠키 자체를 훔쳐 세션에 접근하면 중요한 정보를 뺴낼수도 있게된다.
단점
모든유저의 정보를 DB에 저장하기 때문에
가능한 것들이 장점특정유저 쫒아내고싶을때 DB에서 그 유저 삭제 가능
인스타그램 처럼 로그인된 모든 계정을 보여줄 수 있음
넷플릭스처럼 계정 공유 숫자 제한 가능
토큰
토큰이란?
토큰의 동작 과정
토큰의 특징 / 단점
클라이언트에 저장
되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다.JWT
JWT 구조
JWT는 . 을 구분자로 나누어지는 세 가지 문자열의 조합
https://jwt.io/ 여기서 쉽게 JWT 토큰을 인코딩(생성) 하거나 디코딩 할수 있다.
JWT 동작 과정
처음 유저가 로그인할 때 ID, PW 를 서버에 보내는 것은 동일!
서버는 유저의 정보를 가져다가 ⭐️서버가 가진 “시크릿키”⭐️을 사용해서 signed information을 담은 token 만들어 string 형태로 보낸다
이후에는 서버에 request 보낼 때 마다 token(signed information)을 보낸다.
서버가 토큰을 받으면 자신이 가진 ⭐️시크릿키로 해당 토큰의 유효성검사⭐️를한다(토큰을 조작했는지 여부)
토큰이 유효하다면, 유저 정보 파악 ( 토큰 해석해서 유저이름, 만료시기,권한 등을 파악한다)
인증 & 응답을 보낸다.
Access Token & Refresh Token
Access Token
Refresh Token
JWT 특징
[서버 기반(Stateful) vs 토큰 기반(Stateless)]
stateful 서버
stateless 서버