OAuth(오쓰)는 인터넷에서 로그인이나 권한 위임을 안전하게 처리하기 위한 표준 프로토콜이다. 우리가 흔히 보는 "구글로 로그인", "카카오로 로그인" 같은 것도 OAuth 2.0을 이용한 것이다.
우선 간단하게 용어에 대해서 알아보자.
Authorization Code: 일회용 인증 코드 (Access Token으로 바꾸기 위한 코드)
Access Token: 권한을 갖고 있는 증표. 이걸로 사용자 정보를 요청함
Refresh Token: Access Token이 만료되었을 때 새로 받을 수 있게 해주는 토큰
Resource Owner: 사용자 (권한을 가진 사람)
Client: 권한을 요청하는 앱 (당신의 웹앱)
Authorization Server: 로그인 처리와 토큰 발급 담당 (예: 카카오 서버)
Resource Server: 실제 사용자 정보를 가진 서버 (예: 카카오의 유저 정보 API 서버)

사용자가 로그인 버튼 클릭
예: "카카오로 로그인"
사용자 → 카카오 인증 페이지로 이동
location.href = `https://kauth.kakao.com/oauth/authorize?...`;
사용자가 카카오에 로그인하고 허용을 누름
이때 사용자에게 어떤 권한을 줄지 보여줌 (예: 이메일 보기)
카카오가 Authorization Code를 앱에 전달
브라우저 주소에 ?code=~~~ 형식으로 전달
앱이 Authorization Code로 토큰 요청
백엔드에서 카카오 서버에 POST 요청을 보냄.
이때 받는 게 바로 Access Token!
Access Token으로 사용자 정보 가져오기
GET /v2/user/me 등으로 카카오 유저 정보를 가져올 수 있다.