OAuth 2.0

윤스타·2025년 4월 8일

정리

목록 보기
2/2
post-thumbnail

OAuth 2.0

OAuth 2.0이란?

다른 사이트(서비스)의 정보를 로그인 없이 비밀번호를 안 주고 가져올 수 있게 해주는 인증 방식이다.

OAuth 2.0의 흐름(= Authorization Code Flow): 가장 보편적인 OAuth 로그인 방식이다.
보안이 가장 뛰어나고, 서버가 중간에서 모든걸 처리하기 때문에 많이 사용한다.

  1. 사용자 → 소셜 로그인 버튼 클릭
  2. → 소셜 로그인 페이지(구글, 카카오 등)로 이동
  3. → 로그인 & 권한 동의
  4. → 우리 서버로 돌아옴 (코드 포함)
  5. → 우리 서버가 소셜에게 "사용자 정보 달라" 요청
  6. → 사용자 정보 가져와서 로그인 처리

주요 개념

  1. redirect_uri: 사용자가 인증 후, 소셜 서비스가 우리쪽으로 돌아오는 주소
    ex: http://localhost:3000/auth/callback
    -> 소셜 로그인 성공 시, 여기에 코드를 전달해준다.

  2. client_idclient_secret

  • client_id: 우리 앱의 공개 ID(구글, 카카오 등에 등록하면 발급해준다.)
  • client_secret: 비밀번호 같은 민감한 값이다.(절대 클라이언트에 노출되면 안된다.)
    -> 둘 다 OAuth 앱을 생성할 때 발급 받아야 한다.
  1. scope: 어떤 정보까지 동의 받을지 정하는 파라미터이다.
    ex) profile: 이름, 닉네임, email: 이메일 주소

  2. code: 로그인 성공 후, 소셜에서 우리에게 주는 일회용 인증 코드이다.
    -> 이걸 이용해서 access_token을 얻을 수 있다. 중요한건 이 code짧은 시간만 유효하다.

  3. access_tokenrefresh_token

  • access_token: 실제 사용자 정보를 요청할 수 있는 키이다.
    • 유효기간: 보통 1시간
    • 사용처: API 호출에 사용한다.
  • refresh_token: access_token을 새로 발급받기 위한 키이다.
    • 유효기간: 보통 30일 이상
    • 사용처: access_token 재발급 시 사용한다.
profile
사이버 노트

0개의 댓글