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. 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 şarkı listesini kaydetmeye hazır olduğunda yalnızca Google Drive izinlerini isteyebileceğini varsayalım.
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'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. 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 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 ö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 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}));
});