-> 소프트웨어(Project, App)가 관리하는 모든 것
HTTP의 특성때문이다.
HTTP와 통신할 때 한번만 연결하면 계속 통신이 되는 것이 아니고 통신할 때마다 원하는 형식으로 통신을해야 Response를 받을 수 있는데 이 때 서버는 자신의 사용자인지 아닌지를 알 수 있어야하기 때문에 쿠키가 사용된다.
그 이유는 서버가 모든 일을 행하게 된다면 서버의 과부하가 걸리기 때문이다.
API의 데이터가 조작되어 보안상 데이터가 생길 수 있다.
이런 문제점을 보안하기 위해서 아래에서 설명할 OAuth가 생긴것이다.
"Big3 전용 이용권"의 뜻은 놀이공원에서 인기랭킹 1,2,3위의 놀이기구만 탈 수 있는 이용권을 말한다.
즉, 쿠키와 세션은 모든 데이터를 넘겨 문제가 생기니깐 OAuth에서는 그 문제를 해결하고자 필요한 데이터만 넘겨 문제를 해결했다.
마지 UIKit과 같이 UIKit라는 프레임워크를 따르게 되면 UI를 계속 만들 수 있는 것처럼 OAuth라는 프레임워크를 따르게되면 총 2개의 토큰을 만들 수 있다.
Access Token을 사용하면 해커가 Token을 해킹하고 사용하려고 하면 다시 재발급이 되기 때문에 해킹해도 사용할 수 없어 보안에 강하다.
Refresh Token을 사용하면 컴퓨터를 껐다가 내일 일어나서 다시 컴퓨터를 할 때 Refresh Token은 유효기간이 길기 때문에 해당 Refresh Token으로 새로운 Access Token과 Refresh Token을 생성할 수 있다.
header: 토큰의 타입과 암호화 알고리즘으로 구성되어있다.
payload: 토큰에 담을 클레임(claim) 정보를 포함하고 있다. Payload 에 담는 정보의 한 ‘조각’ 을 클레임이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄져있다. 토큰에는 여러개의 클레임 들을 넣을 수 있다. (내용)
signature: secret key를 포함하여 암호화되어 있다. (누가 발급했는지에 대한 서명)