본문 바로가기
웹 지식

OAuth 기초 공부하기

by devebucks 2021. 6. 5.
728x90

User -  My Service - Big Service(google, facebook, kakao, naver)

사용자들은 자신의 흔적(id, pw)이 어딘가에 저장되어 있는 것을 좋아하지 않습니다. 사용자가 서비스의 사용을 주저하게 됩니다. 하지만, 서비스들은 개인화된 서비스를 제공하기 위해서 사용자의 인증이 필요합니다. 그렇지만, 서비스들도 사용자의 정보를 저장하고 있으면서 관리하기를 원하지 않습니다. 또, Big Service에서도 자신의 유저 정보를 My Service들이 저장하는 것을 원하지 않습니다. 이런 상황 때문에 OAuth가 사용됩니다. 

 

 

OAuth

id와 password 대신에 accessToken을 Big Service는 My Service에게 발급합니다. 이게 OAuth입니다.

 

 

OAuth가 일어나는 순서를 알아보겠습니다.

1. my Service는 Big Service에 사전에 자신을 등록해서 ClientId를 발급받습니다.

2. My Service는 Big Service로 부터 발급받은 ClientId와 API를 사용해서 User가 Big Service로 로그인할 수 있도록 합니다.

인증을 받는 과정

① user가 로그인을 하면, My Service에서 제공하는 앱이 아닌 별도의 팝업창에서 로그인을 진행합니다. ClientId도 함께 Big Service로 전달합니다. 버튼에는 Big Service에 요청할 url과 파라미터들이 담겨있습니다. clientID와 redirectURL 그리고 scope가 있을 수 있습니다.

②, ③ User가 보내온 요청이 유효하다면, Big Service는 User에게 Authorization Code를 User를 통해서 My Service로 전달합니다.

④ My Service는 Authorization code, ClientId, Client Secret 그리고 redirect 정보를 Big Service로 전달합니다.

⑤ Big Service는 인증을 확인하고, accessToken을 발급해서 My Service로 전달합니다.

google OAuth2.0 문서

 

 

Refresh token

발급받은 accessToken은 수명이 있습니다. 수명이 다 하면, 더 이상 유효한 accessToken이 아닙니다. 그래서 새로 accessToken을 발급받아야 합니다.  이 방법이 refresh token입니다.

 

 

 

 

참고 : Google OAuth 2.0 

 

 

728x90

댓글