Id와 Password를 작성해 로그인하는 기존의 로그인 방식 말고
네이버나 카카오 API를 사용한 Social Login 작업을 진행하게 되었다.
이에 필요한 개념을 먼저 학습해야 했고, 그 첫번째 개념이
오늘 포스팅 할 OAuth이다.
다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜
네이버와 카카오, 구글과 같은 제 3의 서비스 앱이 리소스 보유자인
사용자를 대신해 서비스를 요청할 수 있도록 리소스 접근 권한을
위임하는 방법이다.
Oauth를 이해하기 위해선 필수적으로 알아야 할 단어들이 있다.
Resource Server
: OAuth2.0 서비스를 제공하고, 자원을 관리하는 서버
ex) 구글, 카카오톡과 같은 서비스 앱
Resource Owner
: Resource Server의 계정을 갖고 있는 사용자
ex) 서비스를 이용하려는 사람, 유저
Client
: Resource Server의 API를 사용하여 데이터를 가져오려고 하는 사이트
ex) API를 이용해보려고 내가 만든 웹페이지
Autorization Server
: Client가 Resource Server의 서비스를 사용할 수 있게 인증하고
토큰을 발행해주는 서버
ex) 인가 서버. 구글, 카카오톡과 같은 서비스 웹
Authentication Server
: 실제로 로그인 서비스를 제공하는 서버
ex) 인증 서버. 구글, 카카오톡과 같은 서비스 웹
7~8 단계는 서비스에서 callback URL 을 통해 전달받은 Authorization Code를 사용하여 Access Token 요청 API를 통해 진행
8 단계에서 발급받은 Access Token은 서비스에서 자체적으로 저장, 관리
10~11 단계에서 사용자의 서비스 요청 시 회원정보가 필요하다면 Access Token을 사용해 API를 호출
(이것만큼 설명이 잘 되어있는 것이 없었다)
Reference
PAYCO 개발자 센터
OAuth 프로토콜의 이해
OAuth 알아보기