해당 포스팅은 다음을 참조했습니다.
https://baked-corn.tistory.com/29
용어를 우선 정리하도록 하겠습니다.
용어 | 의미 |
Client | 사용자가 사용하려는 우리가 만든 서비스 |
Resource Server | 구글/페이스북같은 oauth 제공자, 어떤 사람의 자원(Resource)를 가지고 있음. |
Resource Onwer | client의 서비스를 이용하는 사람, 이미 구글, 페이스북등에 가입된 사람으로 Resource server의 Resource owner이기 때문에 Resource owner라고 함. |
1. 우리가 만든 Client가 Resource Server의 API를 사용한다고 Resource Server에 등록을 해야합니다(구글, 페이스북 등등..)
2. 그렇다면 Resource Server는 이 Client를 식별할 수 있는 Client ID와 Client Secret을 발급합니다.
3. 이 후 Resource Owner가 우리가 만든 Client에서 Google 계정으로 로그인을 통해 로그인 요청을 합니다
4. 구글에서는 로그인이 안되어있으면 로그인을 할 수 있는 화면을 보여주고, 로그인이 되어있으면 "내가 만든 웹사이트에서 너의 구글계정에 있는 어떤 정보(API정보)를 가져다 쓴다는데 동의할거야?" 라고 구글이 동의를 구하는 화면을 보여준다.
5. 사용자가 동의하면 구글은 바로 정보를 주지 않고 인증 코드를 웹사이트에 줍니다.
6. 인증코드를 받은 웹사이트에서는 기존에 웹서비스를 구글에 등록하면서 받은 client id(ID)와 client secret(PW), 그리고 인증코드를 보냅니다. (총 3개의 정보)
7. 그러면 구글이 올바른 클라이언트(웹사이트)의 요청이었음을 검증했기 때문에 access token을 줍니다.
8. 이제 사용자의 요청에 따라 구글 계정의 정보(API)가 필요하면 구글에 access token을 내밀면서 정보를 받아다가 쓸 수 있습니다.