소셜 로그인 프로세스

cabbage·2023년 2월 12일
0

기타

목록 보기
7/26
post-custom-banner

소셜 로그인이란?

  • 소셜 로그인은 여러 소셜 네트워킹 서비스들의 정보를 이용해 애플리케이션과 플랫폼에 손쉽게 로그인할 수 있는 프로세스이다.
  • 사용자 관점에서 번거로운 회원 등록 절차를 건너뛰고 사이트나 애플리케이션에 손쉽게 접근할 수 있다.
  • 개발자와 기업 관점에서 사용자 확인을 간소화하고, 사용자 데이터에 더욱 안정적으로 접근할 수 있다.

소셜 로그인의 특징

  • 로그인 간소화
    • 페이스북이나 구글 계정을 이용하면 매우 간편하게 타사 웹사이트나 애플리케이션에 로그인할 수 있다.
    • 회원 가입을 따로 할 필요가 없어 더욱 빠르게 접근할 수 있다.
  • 비밀번호 의존도 감소
    • 소셜 로그인 사용자는 자격 증명을 추가로 만들어 기억할 필요가 없어 여러 비밀번호를 기억해야 하는 수고로움에서 벗어날 수 있다.
  • 신뢰 가능한 프로세스
    • 소셜 로그인은 일관된 로그인 방식을 제공한다.
    • 알지 못하는 새로운 사이트와 애플리케이션에서도 이미 신뢰하는 소셜 네트워킹 서비스들을 통해 자신의 데이터를 안심하고 공유할 수 있다.

소셜 로그인의 단점

  • 데이터 유출 또는 도난가능성 증가
    • 소셜 네트워킹 서비스들의 데이터가 유출되면 수많은 사용자 정보가 동시에 유출될 수 있다.
  • 취약한 비밀번호 사용
    • 소셜 로그인 사이트에서 데이터 도난이 발생하면 동일한 비밀번호를 반복 사용하는 사용자의 계정이 다수 유출될 수 있다.
    • 피해를 입은 소셜 미디어 계정과 연결된 앱이나 사이트에서도 역시 계정 유출의 가능성이 높아진다.

소셜 로그인 프로세스

소셜 로그인을 다음과 같이 간단한 프로세스로 표현할 수 있다.

  1. 사용자가 애플리케이션 또는 사이트에 접속하여 로그인하고 싶은 소셜 네트워킹 서비스를 선택한다. 예를 들어, 구글 로그인, 애플 로그인, 페이스북 로그인 등이 있다.
  2. 소셜 네트워크 공급업체가 로그인 요청을 수신하고 사용자를 인증한다. 사용자는 애플리케이션 또는 사이트에 대한 액세스 권한을 수락해야 한다.
  3. 소셜 네트워크 공급업체가 사용자 신원을 확인하면 사용자가 애플리케이션 또는 사이트에 접근할 수 있다.

구글 로그인 프로세스

구글 로그인을 사용하는 소셜 로그인 프로세스는 아래와 같이 진행된다.

  1. 브라우저에서 서버로 구글 로그인 페이지를 요청한다.
  2. 서버는 브라우저에 구글 로그인 페이지를 응답한다.
  3. 사용자는 브라우저의 구글 로그인 페이지를 통해 구글 계정으로 로그인한다.
  4. 구글 서버는 로그인 정보인 시크릿코드를 브라우저에 전송한다.
  5. 브라우저는 구글 서버로부터 받은 시크릿코드를 서버로 전송한다.
  6. 서버는 사용자를 구글 서버로부터 인증하기 위해 브라우저로부터 받은 시크릿코드를 다시 구글 서버에 전송한다.
  7. 시크릿코드로 구글 사용자가 인증되면 구글 서버는 accessToken과 프로필 정보를 서버에 전송한다.
  8. 서버는 구글 서버로부터 받은 accessToken과 프로필 정보로 자체적인 서비스 로직을 처리한다.
    • 회원 가입이 되어 있지 않다면 회원 가입을 자체적으로 처리한다.
    • 회원 가입 처리 후 자동 로그인 후 refreshToken을 발급한다.
  9. 서버에서 발급한 refreshToken을 응답 헤더의 쿠키에 담아 전송한다. 그리고 구글 로그인 페이지를 요청하기 이전의 페이지로 리다이렉트한다.

이후, 브라우저의 쿠키에 저장된 refreshToken을 다시 서버로 전송해 accessToken을 발급 받는다. 그리고 필요하다면 accessToken을 사용해 인가 과정이 필요한 API를 요청한다.

참고

profile
캐비지 개발 블로그입니다. :)
post-custom-banner

0개의 댓글