앱이나 웹페이지를 사용할 때 페이스북, 카카오, Google, Apple 등을 연동하여 간편하게 회원가입·로그인을 할 수 있는 소셜 로그인 기능이 많이 제공된다.
소셜 로그인을 활용하게 되면 간편하게 로그인할 수 있을 뿐만 아니라, 연동되는 외부 앱(웹페이지)에서 해당 연동 플랫폼에서 제공하는 기능을 간편하게 사용할 수도 있다. ex) Google로 로그인하면 연동된 계정의 구글 캘린더 정보를 가져와 보여줄 수 있음
인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 웹사이트나 앱이 접근할 수 있는 권한을 부여할 수 있도록 하는 개방형 표준(프로토콜) OAuth 2.0은 1.0에서 알려진 보안 문제 등을 개선한 버전
👉 즉, 카카오,애플,구글…등에 있는 내 정보를 이 앱에서 사용(회원가입, 로그인 등…)할 수 있도록 해주는 것
👉 사용자의 허락이 있다면 카카오, 애플, 구글 등의 제3자 서비스들은 자신들의 회원 정보를 다른 서비스가 활용할 수 있도록 해주는 access token을 발급해줌. 이 토큰을 통해 서비스는 제3자 서비스들이 가지고 있는 유저 정보로 접근할 수 있다.
| 구분 | 설명 |
|---|---|
| **Resource Owner | |
| ≈ 사용자** | 웹 서비스를 이용하려는 유저, 자원(개인정보)를 소유하고 있는 사람 |
소셜 로그인을 하게 되는 경우,
Client는 유저(resource owner)를 대신해서 로그인 정보/자원(resource)을 resource server에 요청해 대신 로그인 하게 된다.
이를 위해서 client는
유저(resource owner)로부터 동의를 받고,
Resource server로부터 client의 신원 확인을 받아야 한다.
*⇒ Resource server는 resource owner(유저)의 브라우저를 통해 **client를 구분하는 값(code)*을 전달함