OAuth 2.0

20.07.18
yesdoing

목차

  • OAuth란?
  • OAuth 2.0 동작방식
  • OAuth 2.0 구글 로그인 구현체
  • 마무리

OAuth란?

OAuth의 탄생

OAuth 2.0

The OAuth 2.0 Authorization Framework

OAuth 2.0 동작 방식

Roles

Roles

  • Resource Owner
    • 우리 서비스가 필요한 기능들을 가지고 있는 소유자. 즉 유저
  • Resource Server
    • 우리 서비스가 필요한 기능들을 가지고 있는 서버
      (트위터, 페이스북)
  • Client
    • 우리 서비스
  • Authorization server
    • 우리 서비스가 유저에게 권한과 인증을 얻으면 Access Token을 발행해주는 서버

Protocol Flow

Client

Resource
Owner

Authorization
Server

Resource
Server

1. Authorization Request

2. Authorization Grant

3. Authorization Grant

4. Access Token

5. Access Token

6. Protected Resource

Credentials

등록으로 얻어야 하는 3가지 값

  • Client ID
  • Client Secret
  • Authorized redirect URIs

Authorization Request & Grant

소셜 로그인
시도

소셜 로그인
링크 생성

Authorization Request & Grant

https://accounts.google.com/o/oauth2/v2/auth?response_type=code
&client_id=${
process.env.GOOGLE_CLIENT_ID}
&scope=openid%20profile%20email
&redirect_uri=http%3A//localhost%3A4000/oauth/google/callback
&state=${
state}

State 값은 서버에서 생성한 랜덤 문자열

Authorization Request & Grant

로그인 and 권한 요청

Location: redirect_uri
?code=${authorization code}

Authorization Request & Grant

Authorization
Grant

Location: redirect_uri
?code=${authorization code}

Authorization Grant

  • grant type
  • code
  • redirect_uri
  • client_id
  • client_secret

Authorization Request & Grant

Access
Token

Json Web Token

Fetch
API

Refresh Token

OAuth 2.0
구글 로그인 구현체

마무리

OAuth 2.0

By yesdoing

OAuth 2.0

  • 178