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