웹 승인

웹 앱에서 Google API를 안전하게 호출하려면 액세스 토큰을 확보해야 합니다.

Google ID 서비스 JavaScript 라이브러리는 사용자 로그인을 위한 인증과 Google API에 사용할 액세스 토큰을 얻기 위한 승인을 모두 지원합니다. 라이브러리는 브라우저에서만 사용하도록 고안되었습니다.

인증은 사용자가 누구인지를 파악하며 일반적으로 사용자 가입 또는 로그인이라고 합니다. 승인은 데이터나 리소스에 대한 액세스 권한을 부여하거나 거부하는 프로세스입니다. 여기에는 사용자 동의를 얻고 관리하고, 범위와 공유되는 데이터 또는 리소스의 양을 제한하고, Google API에 사용할 액세스 토큰을 검색하는 작업이 포함됩니다.

이 가이드에서는 승인 및 데이터 공유 주제를 다룹니다.

사용자 승인 작동 방식에서는 사용자 승인의 개별 단계를 자세히 설명하고 사용자 대화상자의 예를 포함합니다.

인증에 도움이 필요하거나 사용자 가입 및 로그인을 구현하는 방법은 Google 계정으로 로그인을 참조하세요.

이 라이브러리는 Node.js와 같은 서버 측 JavaScript 프레임워크에서 사용하기 위한 것이 아니며, 대신 Google의 Node.js 클라이언트 라이브러리를 사용하세요.

변경된 내용

사용자를 위해 Google ID 서비스 라이브러리는 이전 JavaScript 라이브러리에 비해 다음과 같은 여러 사용성 개선사항을 제공합니다.

  • 사용자 로그인을 위한 인증과 Google API 호출을 위한 액세스 토큰을 가져오기 위한 승인에는 이제 두 가지 별개의 사용자 플로우가 있습니다. 하나는 승인 중 로그인용이고 다른 하나는 동의용이며, 앱에서 제공하는 작업과 사용자가 누구인지 명확하게 구분하기 위한 별도의 사용자 플로우가 있습니다.
  • 사용자 동의 중에 데이터 공유의 가시성과 세부적인 제어가 개선되었습니다.
  • 불편함을 줄이고 사용자가 사이트를 떠나지 않아도 되는 브라우저 기반 팝업 대화상자
    • Google에서 액세스 토큰 받기
    • 백엔드 플랫폼에 승인 코드를 전송합니다.

Google은 개발자를 위해 복잡성을 줄이고 보안을 강화하며 최대한 빠르고 쉽게 통합할 수 있도록 하는 데 중점을 두었습니다. 이러한 변경사항 중 일부는 다음과 같습니다.

  • 로그인을 위한 사용자 인증과 Google API 호출을 위한 액세스 토큰을 얻는 데 사용되는 승인은 JavaScript 객체 및 메서드의 별개이며 서로 구분되어 있습니다. 이렇게 하면 인증 또는 승인을 구현하는 데 필요한 복잡성과 세부사항이 줄어듭니다.
  • 이제 단일 JavaScript 라이브러리에서 다음 두 가지를 모두 지원합니다.
    • 브라우저에서 사용할 액세스 토큰을 가져오는 데 사용되는 OAuth 2.0 암시적 흐름
    • OAuth 2.0 승인 코드 흐름(오프라인 액세스라고도 함)은 백엔드 플랫폼에 승인 코드를 안전하게 제공하여 시작되어 액세스 토큰 및 갱신 토큰으로 교환할 수 있습니다. 이전에는 여러 라이브러리를 사용하고 OAuth 2.0 엔드포인트를 직접 호출하는 방식으로만 이러한 흐름을 사용할 수 있었습니다. 단일 라이브러리를 사용하면 여러 라이브러리와 OAuth 2.0 개념을 학습하는 대신 하나의 통합 인터페이스에 집중할 수 있으므로 통합에 드는 시간과 노력을 줄일 수 있습니다.
  • 단순성과 가독성을 위해 getter 스타일 함수를 통한 간접 참조가 삭제되었습니다.
  • 승인 응답을 처리할 때는 사용자 대신 프로미스를 사용하여 요청을 처리할지 여부를 선택합니다.
  • JavaScript용 Google API 클라이언트 라이브러리가 다음과 같이 업데이트되었습니다.
    • gapi.auth2 모듈과 관련 객체 및 메서드가 더 이상 내부적으로 자동으로 로드되지 않고 더 명시적인 Google ID 서비스 라이브러리 객체 및 메서드로 대체되었습니다.
    • 만료된 액세스 토큰의 자동 새로고침이 삭제되어 사용자 보안 및 인식이 개선되었습니다. 액세스 토큰이 만료된 후 앱은 Google API 오류 응답을 처리하고 유효한 새 액세스 토큰을 요청해야 합니다.
    • 인증 시점과 승인 시점의 명확한 분리를 지원하기 위해 사용자가 앱과 Google 계정에 로그인하는 동시에 액세스 토큰을 발급하는 기능은 더 이상 지원되지 않습니다. 이전에는 액세스 토큰을 요청하면 사용자가 Google 계정에도 로그인되고 사용자 인증을 위해 JWT ID 토큰 사용자 인증 정보가 반환되었습니다.
  • 사용자 보안 및 개인 정보 보호를 강화하기 위해 승인을 위해 발급되는 사용자별 사용자 인증 정보는 액세스 토큰과 이를 관리하는 데 필요한 정보만 포함하는 등 최소 권한의 원칙을 따릅니다.