Ek izinler isteme

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

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

Kullanıcıların, izin ekranınızın çok fazla bilgi içerdiği veya belirli izinlerin neden istendiği konusunda kafalarının karıştığı için oturum açmadığını düşünü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 alınmıştır: Google 2.0 oturum açma düğmesi oluşturma. Web için artımlı yetkilendirme hakkında daha fazla bilgiyi OAuth 2.0 belgeleri bölümünde bulabilirsiniz.

Ek kapsamlar isteme

Uygulamanız, oturum açma kapsamınınprofile yanı sıra çalışması için ihtiyaç duyduğu diğer tüm ilk kapsamlardan 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 için yetki verir.

1. adım: Temel kapsamlar isteyin

Google ile oturum açma özelliğini başlatırken temel kapsamı profile isteyin. Bu adım, Google 2.0 oturum açma düğmesi oluşturma başlıklı makalede 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 kapsamlara ihtiyaç duyulan her yerde, eklemek istediğiniz kapsamları içeren bir seçenek oluşturucu oluşturarak ve ardından user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);'yi çağırarak bu kapsamları 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}));
    });