OAuth2.0의 표준 규격은 몇가지의 인증방식을 제공한다. 오늘은 하루종일 연결하려다가 결국 포기하고 말아버린 이야기를 해보려 한다.

Authorization code

Oauth2.0은 인증방식(grant type)에 따라 다른 흐름을 가진다. 흐름의 종류에 대해 궁금함다면 아래 북마크를 참고하자.

OAuth Grant Types

Authorization code는 그중 가장 기본적이고 많이 활용되는 방식이다. Auth 로그인을 한번정도 구현해봤다면 경험해봤을 것이다.

기본적인 흐름은 아래와 같다.

준비

  1. Clinet Id, Client Secret을 발급받음
  2. Redierct Uri를 등록함

흐름

  1. Resource Server에 인증 코드(code)를 요청한다
  2. Resource Server는 로그인 상태를 확인한다. 안되있다면 본인의 로그인 화면으로 연결하여 로그인을 진행한다.
  3. Resource Server는 client id, secret, 그리고 등록된 uri와 일치하는지 확인하고 code를 url에 담아 redirect uri로 보낸다.
  4. Client는 해당 코드를 가지고 Resource Server에게 token을 요청한다.
  5. Resouce Server는 다시 id, secert, uri, code를 확인하고 token을 발급한다.

흐름은 크게 어렵지 않고 대부분의 프레임워크에는 해당 흐름을 자동화해둔 모듈이 존재한다. 실제로 SSR형태로 서비스를 만들었을 때 간단하게 구축하였었다.

삽질기