Ek izinler isteme

Kullanıcı verilerine veya diğer kaynaklara erişmek için kullanıcı izni isterken, ilk istekte tüm kapsamları önceden isteyebilir veya artımlı yetkilendirmeyi kullanarak yalnızca gerektiğinde kapsamları isteyebilirsiniz. Uygulamanız, artımlı yetkilendirmeyi kullanarak başlangıçta yalnızca uygulamanızı başlatmak için gereken kapsamları ister. Daha sonra yeni izinler gerektiğinde ek kapsamları, kullanıcıdan isteğin nedenini tanımlayan bir bağlamda ister.

Örneğin, uygulamanızın kullanıcıların müzik şarkı listelerini Google Drive'a kaydetmesine izin verdiğini; uygulamanız oturum açarken temel kullanıcı bilgilerini isteyebilir ve daha sonra, kullanıcı ilk şarkı listesini kaydetmeye hazır olduğunda yalnızca Google Drive izinlerini isteyebilir.

İzin ekranınız aşırı dolu olduğu için kullanıcıların oturum açmadığından şüpheleniyorsanız veya onlardan belirli izinleri istemelerinin nedeni konusunda kafa karışıklığı yaşıyorsanız bu tekniği kullanın. Aşağıdaki talimatlar web içindir ve istemci tarafı oturum açma düğmesi ekleme talimatlarından türetilmiştir: Google 2.0 ile Oturum Açma düğmesi oluşturma. OAuth 2.0 belgelerinde web için artımlı yetkilendirme hakkında daha fazla bilgi edinebilirsiniz.

Ek kapsamlar isteme

Oturum açma sırasında uygulamanız, profile oturum açma kapsamı ve uygulamanızın çalışması için gerektirdiği diğer başlangıç kapsamlarından oluşan "temel" kapsamları ister. Daha sonra kullanıcı ek kapsamlar gerektiren bir işlem gerçekleştirmek istediğinde uygulamanız bu ek kapsamları ister ve kullanıcı, izin ekranından yalnızca yeni kapsamları yetkilendirir.

1. adım: Temel kapsamları isteyin

Google ile Oturum Açma özelliğini ilk kullanıma hazırlarken profile temel kapsamını isteyin. Bu adım, Google 2.0 ile Oturum Açma düğmesi oluşturma bölümünde yer almaktadır.

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

2. Adım: Ek kapsamlar isteyin

Ek kapsamların gerektiği durumlarda, eklemek istediğiniz kapsamlarla bir seçenek oluşturucu oluşturup ardından user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction); çağrısı yaparak bunları isteyin:

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}));
    });