본문 바로가기
🔥CS 뽀개기

구글 소셜 로그인 처리하기 (feat. OAuth 2.0)

by 짱돌보리 2024. 6. 18.
728x90
OAuth
구글, 페이스북 등 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제3자가 사용자의 접근 권한 위임을 받을 수 있는 프로토콜

 

.구글은 OpenID Connect 프로토콜을 통해 OAuth 2.0을 구현하고 있다.

 

❓OAuth 2.0
인증 및 권한 부여를 위한 개방형 표준 프로토콜로, 다양한 인터넷 서비스에서 사용되는 주요 프로토콜

사용자가 앱에 로그인 사용자 인증 정보를 증명하지 않아도 앱이 사용자의 보호된 리소스 (예: 은행 계좌 또는 사용자가 앱에서 액세스하려고 할 수 있는 기타 민감한 정보)에 제한적으로 액세스하도록 허용한다.

 

✨구글 소셜 로그인 Authorization Code 흐름 과정

  1. 사용자가 클라이언트 애플리케이션의 "구글로 로그인" 버튼을 클릭한다.
  2. 클라이언트 애플리케이션은 사용자를 구글 OAuth 2.0 인증 엔드포인트로 리디렉션한다. 이때 클라이언트 ID, 리디렉션 URI, 응답 유형(code) 등의 파라미터를 함께 전송한다.
  3. 사용자는 구글 로그인 및 동의 화면을 보게 된다.
  4. 사용자가 로그인하고 동의하면 구글 OAuth 2.0 프로바이더는 인가 코드(Authorization Code)를 클라이언트 애플리케이션으로 리디렉션한다.
  5. 클라이언트 애플리케이션은 인가 코드, 클라이언트 ID, 클라이언트 비밀번호를 사용하여 구글 OAuth 2.0 토큰 엔드포인트에 액세스 토큰 요청을 보낸다.
  6. 구글 OAuth 2.0 프로바이더는 이 요청을 확인하고 액세스 토큰을 발급한다.
  7. 클라이언트 애플리케이션은 발급받은 액세스 토큰을 사용하여 구글 사용자 정보 API를 호출한다.
  8. 클라이언트 애플리케이션은 사용자 정보를 받아와 자체 세션 토큰을 발급하고, 이를 사용자에게 전송한다.
  9. 사용자는 세션 토큰을 받아 클라이언트 애플리케이션의 메인 페이지로 리디렉션된다.

 

참고)

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

https://goldenrabbit.co.kr/2023/08/07/oauth%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%9D%B8%EC%A6%9D%ED%95%98%EA%B8%B0-1%ED%8E%B8/