<aside> <img src="/icons/list_gray.svg" alt="/icons/list_gray.svg" width="40px" /> 목차

</aside>

👉 인증

저희가 만든 서버는 사용자에 따라 다른 데이터를 처리해야 합니다. 예를 들어, 내가 쓴 게시글만 모아서 본다거나, 내가 장바구니에 담아 둔 상품들의 목록을 보거나 하는 것들이 필요하기 때문이에요.

이를 위해서 서버는 각 사용자의 요청을 구분하고 처리할 수 있어야 하는데, 이를 **“인증”(Authorize)**이라고 합니다.

👉 들어가기에 앞서

우리가 만든 서버와 다른 사람이 만든 Google이 있다고 생각해볼게요. 그리고 어떤 데이터가 어떻게 오가는지 상상해보겠습니다.

  1. 사용자는 Google 로그인을 하고 난 후, 우리가 만든 서버에게 Google 로그인 정보를 전달해야 합니다.

가장 기본이 되는 조건이죠? 적어도 어떤 사용자가 어떻게 Google 로그인을 했는지를 알아야, 서버에서 사용자를 구분할 수 있을 테니까요!

하지만 이를 위해서는 서버와 Google이 미리 한 가지 약속을 해둘 필요가 있습니다. 사용자가 Google 로그인을성공했을 때, Google에서는 어떤 서버에게 로그인 정보를 전송할지 알 수 없기 때문입니다.

  1. Google은 미리 정의된 서버에게 로그인 정보를 전달해야 합니다.

어떻게 데이터를 전달할지에 대해서는 잠시 후에 알아보도록 하겠습니다.

또 필요한 것은, 어떤 데이터를 전달할지도 정의해야 합니다. 사용자가 Google 로그인을 했는데, 이 정보를 이용해서 서버가 사용자의 모든 데이터를 얻어가버리면 문제가 되겠죠? 의도하지 않은 사진첩의 정보, 연락처 정보, 위치 정보까지 모두 다 긁어가면 문제가 될 거예요!

  1. 사용자가 인지할 수 있는 형태의 서버 권한 동의가 필요합니다. 로그인 할 때 동의를 받으면 좋겠네요!

👉 OAuth 2.0

https://developers.google.com/identity/protocols/oauth2

https://developers.google.com/identity/protocols/oauth2

OAuth 2.0의 도식도는 꽤 복잡한데요, 한 번 천천히 하나씩 알아보도록 하겠습니다. 사실 한 번에 이해하기는 어려울 수 있어서, 이후에 실습을 통해서 더 이해하고, 여러 번 반복하면서 이해하게 될 거예요.

  1. Request token
  2. User login & consent