OAuth2.0 이 나오게 된 배경
내 개인정보가 너무많이 퍼져있어서 털리기가 너무 쉽다. 그래서 한군데에서 관리하면 좋겠다.
대형포털이 그런 것을 해준다. (ex naver, kakao, google, ...) 이렇게 하면 다른 사이트에는 내 정보가 없기 때문에 네이버나 카카오, 구글만 안전하면 된다
OAuth2.0
- 사용자 A가 서버로 로그인 요청을 보낸다.
- 로그인 페이지를 응답받는다.
- 카카오로 로그인을 하면 kakaoAPI서버로 카카오 로그인 요청을 보낸다.
- 카카오 동의창을 응답 받고 동의를 하면 kakaoAPI서버에서 정상임을 확인하고 code와 함께 콜백을 보내준다. 서버는 code를 받으면 A가 kakaoAPI서버를 통해 인증이 되었다는 것을 알게된다.
===================== 여기까지가 인증이 완료된 것 =======================
- 서버가 code값을 통해서 kakaoResource서버 데이터를 요청할 수 있는 권한을 요청한다.
- kakaoAPI서버는 정상임을 확인하고 AccessToken을 돌려준다. 이 토큰을 받는 순간 서버는 사용자 A의 정보에 접근할 수 있는 권한을 부여받는다.
===================== 데이터 접근 권한을 부여받음 =======================
이 과정을 통해 서버가 AccessToken으로 사용자 A 대신에 A의 정보에 접근할 수 있는 열쇠가 생긴다.
용어 정리
사용자 A : 리소스 오너
서버 : 클라이언트 (kakaoAPI입장에서 클라이언트)
kakaoAPI서버 : 인증서버
resource서버 : 리소스 서버