Google 소셜 로그인을 실행하기 위해서는 일련의 과정을 거쳐야 합니다. 여기에는 사용자, 프론트엔드 애플리케이션, 백엔드 서버, 그리고 OpenID Connect 프로바이더 (Google) 간의 상호작용이 포함됩니다. 아래는 각 단계에 대한 요약 설명입니다.
사용자 요청:
사용자가 프론트엔드 애플리케이션에서 "구글 소셜 로그인" 버튼을 클릭합니다.
프론트엔드 요청:
프론트엔드 애플리케이션은 사용자를 구글 로그인 페이지로 리디렉션시키는 요청을 생성합니다.
이 요청은 구글 로그인 API를 호출하는 JavaScript 또는 기타 클라이언트 사이드 코드를 통해 이루어집니다.
사용자 인증:
사용자는 구글 로그인 페이지에서 자신의 계정 정보를 입력합니다.
Google은 사용자의 신원을 확인하고 사용자에게 동의를 요청합니다.
동의 및 권한 부여:
사용자가 동의하고 권한을 부여하면, Google은 사용자의 정보에 접근할 수 있는 권한 부여 코드(authorization code)를 생성합니다.
Authorization Code 수신:
프론트엔드 애플리케이션은 사용자가 권한 부여한 후에 발급된 Authorization Code를 받습니다.
이 코드는 프론트엔드 애플리케이션에 전달됩니다.
백엔드 요청:
프론트엔드 애플리케이션은 Authorization Code와 함께 백엔드 서버에 요청을 보냅니다.
이 요청은 사용자의 인증된 상태를 백엔드 서버로 전달하고, 사용자의 추가 정보에 접근하기 위해 필요한 권한을 요청합니다.
백엔드 인증:
백엔드 서버는 받은 Authorization Code를 사용하여 Google에 사용자의 정보에 대한 액세스 토큰(access token)을 요청합니다.
백엔드 서버는 이러한 요청을 수행하기 위해 백그라운드에서 Google의 OAuth 2.0 인증 서버에 HTTP 요청을 보냅니다.
액세스 토큰 수신:
Google은 백엔드 서버에게 액세스 토큰을 제공합니다.
사용자 정보 요청:
백엔드 서버는 액세스 토큰을 사용하여 Google의 사용자 정보 엔드포인트에 요청을 보냅니다.
사용자 정보 수신:
Google은 백엔드 서버에게 사용자의 정보를 제공합니다.
사용자 응답:
백엔드 서버는 사용자 정보를 받은 후, 프론트엔드 애플리케이션으로 해당 정보를 보냅니다.
프론트엔드 애플리케이션은 이 정보를 가공하여 사용자에게 적절한 응답을 제공합니다.
이러한 과정을 통해 사용자는 구글 소셜 로그인을 통해 애플리케이션에 로그인할 수 있게 됩니다. 이 과정에서 사용자의 정보는 안전하게 전송되고 보호되어야 합니다.