OAuth2.0

이상호·2025년 5월 19일

OAuth는?

OAuth(오쓰)는 인터넷에서 로그인이나 권한 위임을 안전하게 처리하기 위한 표준 프로토콜이다. 우리가 흔히 보는 "구글로 로그인", "카카오로 로그인" 같은 것도 OAuth 2.0을 이용한 것이다.

우선 간단하게 용어에 대해서 알아보자.

Authorization Code: 일회용 인증 코드 (Access Token으로 바꾸기 위한 코드)
Access Token: 권한을 갖고 있는 증표. 이걸로 사용자 정보를 요청함
Refresh Token: Access Token이 만료되었을 때 새로 받을 수 있게 해주는 토큰
Resource Owner: 사용자 (권한을 가진 사람)
Client: 권한을 요청하는 앱 (당신의 웹앱)
Authorization Server: 로그인 처리와 토큰 발급 담당 (예: 카카오 서버)
Resource Server: 실제 사용자 정보를 가진 서버 (예: 카카오의 유저 정보 API 서버)

OAuth의 흐름

  1. 사용자가 로그인 버튼 클릭
    예: "카카오로 로그인"

  2. 사용자 → 카카오 인증 페이지로 이동

location.href = `https://kauth.kakao.com/oauth/authorize?...`;
  1. 사용자가 카카오에 로그인하고 허용을 누름
    이때 사용자에게 어떤 권한을 줄지 보여줌 (예: 이메일 보기)

  2. 카카오가 Authorization Code를 앱에 전달
    브라우저 주소에 ?code=~~~ 형식으로 전달

  3. 앱이 Authorization Code로 토큰 요청
    백엔드에서 카카오 서버에 POST 요청을 보냄.
    이때 받는 게 바로 Access Token!

  4. Access Token으로 사용자 정보 가져오기
    GET /v2/user/me 등으로 카카오 유저 정보를 가져올 수 있다.

profile
안녕하십니까

0개의 댓글