} 형태가 어떻게 나오는지 흐름을 이해하자!"> } 형태가 어떻게 나오는지 흐름을 이해하자!"> } 형태가 어떻게 나오는지 흐름을 이해하자!">

<aside> ⭐ Pikurate 서비스에서 사용하고 있는 socail 로그인의 흐름을 파악하고, {"key": <value>} 형태가 어떻게 나오는지 흐름을 이해하자!

</aside>

OAuth의 이해


OAuth의 필요성

OAuth의 필요성은 다음과 같다.

  1. 카카오/구글/네이버의 계정으로 다른 서비스에 회원가입을 하고싶다.
  2. ID/PW를 돌려쓴다면, 각 서비스에서 ID/PW가 노출된다면 → 너무 불안정하다.
  3. 💡내가 사용하고 싶은 앱과 로그인을 중개하는 공급자(구글/카카오) 사이에 서비스를 안전하게 상호작용하며 간편하게 로그인을 하도록 하는 것!

OAuth란?

소셜 로그인의 안전성을 확보하기 위해서 ID/PW를 기반으로 로그인을 하는 것이 아니라 Access Token을 이용하여 사용자에 대한 인증을 하게 된다.

용어 정리

OAuth 흐름

  1. Resource Server와 Client 사이의 상호협의가 필요하다.

    사전에 Resource Server와 Client는 몇가지의 자원에 대한 공유를 해야한다.

  2. Resource Owner가 Resource Server에게 Client 접근을 승인받는다.

    2-1) Resource Owner가 Client에서 Resource Server 기능을 제공하기 위해 Client는 특정 형식 주소의 버튼을 제공한다. → Google로 로그인 제공

    2-2) 버튼을 누른다.

    1. 이미 로그인(구글)이 되어있다면, 버튼 주소의 Client ID와 같은 ID 값이 있는지 확인
    2. 로그인이 완료되면 redirect_uri가 등록된 url과 같은지 확인
    3. Resource Owner에게 해당 권한을 Client에게 허용할 것인지 확인
    4. Resource Server는 동의에 따른 Client ID가 요구하는 scope에 대해서 허용으로 저장
  3. Resource Server가 승인하는 과정

    Resource Owner의 동의를 이끌어 냈기 때문에 Resource Server가 승인을 해주어야한다.

    3-1) 이미 등록한 리다이렉트 URL에 맞추어서 인증코드를 쿼리에 담아 이동을 하게 된다.

    3-2) Client는 리다이렉트에 담긴 코드를 알게된다.

    3-3) Client는 이러한 정보를 가지고 Resource Server에 접근을 하게된다.

    3-4) 1에서 등록한 내용과 인증코드가 동일한지 판단한다.