추가 권한 요청

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

사용자 데이터나 기타 리소스에 액세스할 수 있는 사용자 권한을 요청할 때는 초기 단계에서 모든 범위를 미리 요청하거나 증분 승인을 사용하여 필요한 경우에만 범위를 요청할 수 있습니다. 점진적 승인을 사용하면 앱은 처음에 앱을 시작하는 데 필요한 범위만 요청한 다음 사용자에게 요청하는 이유를 식별하는 컨텍스트에서 새 권한이 필요할 때 추가 범위를 요청합니다.

예를 들어 앱에서 사용자가 음악 재생목록을 Google Drive에 저장할 수 있다고 가정해 보겠습니다. 앱은 로그인 시 기본 사용자 정보를 요청할 수 있으며, 사용자가 첫 번째 재생목록을 저장할 준비가 되면 Google Drive 권한만 요청합니다.

동의 화면이 복잡하기 때문에 사용자가 로그인하지 않는 것으로 의심되거나 특정 권한을 요청하는 이유를 혼동하는 경우 이 기법을 사용하세요. 다음 안내는 웹용이며 클라이언트측 로그인 버튼 추가 안내(Google 2.0 로그인 버튼 빌드)에서 파생되었습니다. 웹용 증분 승인에 관한 자세한 내용은 OAuth 2.0 문서를 참고하세요.

추가 범위 요청

로그인 시 앱은 로그인 범위 profile 및 앱에 필요한 기타 초기 범위로 구성된 '기본' 범위를 요청합니다. 나중에 사용자가 추가 범위가 필요한 작업을 실행하려고 하면 앱에서 추가 범위를 요청하고 사용자가 동의 화면에서 새 범위만 승인합니다.

1단계: 기본 범위 요청

Google 로그인을 초기화할 때 기본 범위 profile를 요청합니다. 이 단계는 Google 2.0 로그인 버튼 빌드에 포함되어 있습니다.

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

2단계: 추가 범위 요청

추가 범위가 필요할 때마다 추가할 범위로 옵션 빌더를 구성한 후 user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);를 호출하여 요청합니다.

const option = new gapi.auth2.SigninOptionsBuilder();
option.setScope('email https://www.googleapis.com/auth/drive');

googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
    function(success){
      console.log(JSON.stringify({message: "success", value: success}));
    },
    function(fail){
      alert(JSON.stringify({message: "fail", value: fail}));
    });