Open Authorization Protocol
third-party 애플리케이션에 유저의 정보에 접근할 수 있게 하는 표준 프로토콜
사용자의 아이디와 비밀번호를 공유하지 않고도, 다른 서비스에서 제공하고 있는 정보에 사용자를 대신하여 접근할 수 있는 기능을 제공.
→ 신뢰할 수 있는 서비스 제공자(구글, 카카오 등)를 통해서 제 3의 서비스에 로그인 가능.
*OAuth 2.0은 1.0에서 알려진 보안 문제 등이 개선된 버전.*
Resource Owner
사용자를 의미.
Client
현재 구현중인 채팅 서비스와 같이 사용자 정보에 접근하고자 하는 어플리케이션
Authorization Server
사용자의 인증을 받은 클라이언트에게 리소스 서버에 접근할 수 있는 access 토큰을 발급하는 서버.
Resource Server
사용자의 정보를 담고 있는 서버.
Access Token
자원에 대한 접근 권한을 Resources Owner가 인가하였음을 나타내는 자격증명.
보안상 만료기간이 짧음.
Refresh Token
Client는 Authorization Server로 부터
access token(비교적 짧은 만료기간을 가짐) 과 refresh token(비교적 긴 만료기간을 가짐)을 함께 부여 받음.
access token은 만료기간이 짧기 때문에 만료되면 사용자는 로그인을 다시 시도해야함.
이때 refresh token이 있다면 access token이 만료될 때,
refresh token을 통해 access token을 재발급 받아 재 로그인이 필요없음..




5. 이후 Resource Owner가 Client에게 서비스 요청하면, )
Client는 Access Token을 이용해 Resource Server에 API 호출하고,
code 검증을 통해 서비스를 제공함.

PAYCO OAuth 2.0 프로세스 (출처 : PAYCO 개발자센터)