Ek izinler isteme

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

Örneğin, uygulamanızın kullanıcıların müzik oynatma listelerini Google Drive'a kaydetmelerine olanak tanıdığını; uygulamanız oturum açarken temel kullanıcı bilgilerini isteyebileceğini ve daha sonra, kullanıcı ilk oynatma listesini kaydetmeye hazır olduğunda yalnızca Google Drive izinlerini isteyebileceğini varsayalım.

İzin ekranınızın bunaltıcı olması nedeniyle kullanıcıların oturum açmadığından şüpheleniyorsanız veya belirli izinlerin neden istendiği konusunda kafanız karışıyorsa bu tekniği kullanın. Aşağıdaki talimatlar web'e yöneliktir ve istemci tarafı oturum açma düğmesi ekleme talimatlarından türetilmiştir: Google 2.0 Oturum Açma düğmesi oluşturma. OAuth 2.0 belgelerinde web için artımlı yetkilendirme hakkında daha fazla bilgi edinebilirsiniz.

Ek kapsam isteme

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

1. Adım: İstek tabanı kapsamları

Google ile Oturum Açma'yı başlattığınızda temel kapsamı profile isteyin. Bu adım, Google 2.0 Oturum Açma düğmesi oluşturma bölümünde açıklanmıştı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 her yerde, eklemek istediğiniz kapsamlarla bir seçenek oluşturucu oluşturup user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction); yöntemini çağırarak bunları isteyin:

const options = new gapi.auth2.SigninOptionsBuilder();
options.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}));
    });