Açıklama
OAuth2 erişim jetonlarını almak için chrome.identity API'yi kullanın.
İzinler
identityTürler
AccountInfo
Özellikler
-
id
dize
Hesap için benzersiz tanımlayıcı. Bu kimlik, hesabın kullanım ömrü boyunca değişmez.
AccountStatus
Enum
"SYNC"
Birincil hesap için senkronizasyonun etkinleştirildiğini belirtir.
"ANY"
Varsa birincil hesabın varlığını belirtir.
GetAuthTokenResult
Özellikler
-
grantedScopes
string[] isteğe bağlı
Uzantıya verilen OAuth2 kapsamlarının listesi.
-
token
string isteğe bağlı
İstekle ilişkili jeton.
InvalidTokenDetails
Özellikler
-
token
dize
Önbellekten kaldırılması gereken belirli jeton.
ProfileDetails
Özellikler
-
accountStatus
AccountStatus isteğe bağlı
ProfileUserInfodeğeri döndürülmesi gereken bir profilde oturum açmış birincil hesabın durumu. Varsayılan olarakSYNChesap durumuna ayarlanır.
ProfileUserInfo
Özellikler
-
e-posta
dize
Mevcut profilde oturum açmış kullanıcı hesabının e-posta adresi. Kullanıcı oturum açmadıysa veya
identity.emailmanifest izni belirtilmemişse boş bırakılır. -
id
dize
Hesap için benzersiz tanımlayıcı. Bu kimlik, hesabın kullanım ömrü boyunca değişmez. Kullanıcı oturum açmadıysa veya (M41 ve sonraki sürümlerde)
identity.emailmanifest izni belirtilmediyse boş bırakılır.
TokenDetails
Özellikler
-
hesap
AccountInfo isteğe bağlı
Jetonu döndürülecek hesap kimliği. Belirtilmezse işlev, Chrome profilindeki bir hesabı kullanır: Varsa senkronizasyon hesabı, yoksa ilk Google web hesabı.
-
enableGranularPermissions
boole isteğe bağlı
Chrome 87 ve sonraki sürümler Chrome 148'den itibaren browser.*enableGranularPermissionsişareti, uzantıların ayrıntılı izinler kullanıcı rızası ekranını erken etkinleştirmesine olanak tanır. Bu ekranda, istenen izinler ayrı ayrı verilir veya reddedilir. -
etkileşimli
boole isteğe bağlı
Jeton almak için kullanıcının Chrome'da oturum açması veya uygulamanın istediği kapsamları onaylaması gerekebilir. Etkileşimli işaret
trueisegetAuthToken, kullanıcıdan gerektiği şekilde bilgi ister. İşaretfalseolduğunda veya atlandığında, istem gerektiğindegetAuthTokenher zaman hata döndürür. -
kapsamlar
string[] isteğe bağlı
İstenecek OAuth2 kapsamlarının listesi.
scopesalanı mevcut olduğunda manifest.json dosyasında belirtilen kapsam listesini geçersiz kılar.
WebAuthFlowDetails
Özellikler
-
abortOnLoadForNonInteractive
boole isteğe bağlı
Chrome 113 ve sonraki sürümler Chrome 148'den itibaren browser.*Sayfa yüklendikten sonra etkileşimli olmayan istekler için
launchWebAuthFlowsonlandırılıp sonlandırılmayacağı. Bu parametre, etkileşimli akışları etkilemez.true(varsayılan) olarak ayarlandığında akış, sayfa yüklendikten hemen sonra sonlandırılır.falseolarak ayarlandığında akış yalnızcatimeoutMsForNonInteractivegeçtikten sonra sonlandırılır. Bu, sayfa yüklendikten sonra yönlendirme yapmak için JavaScript kullanan kimlik sağlayıcılar için kullanışlıdır. -
etkileşimli
boole isteğe bağlı
Kimlik doğrulama akışının etkileşimli modda başlatılıp başlatılmayacağı.
Bazı kimlik doğrulama akışları hemen bir sonuç URL'sine yönlendirebileceğinden
launchWebAuthFlow, ilk gezinme nihai URL'ye yönlendirene veya gösterilmesi amaçlanan bir sayfanın yüklenmesi tamamlanana kadar web görünümünü gizler.interactiveişaretitrueise sayfa yükleme işlemi tamamlandığında pencere gösterilir. İşaretfalseise veya atlanırsa ilk gezinme akışı tamamlamazsalaunchWebAuthFlowbir hata döndürür.Yönlendirme için JavaScript kullanan akışlarda, sayfaya yönlendirme yapma şansı vermek için
abortOnLoadForNonInteractive,timeoutMsForNonInteractiveayarıyla birliktefalseolarak ayarlanabilir. -
timeoutMsForNonInteractive
number isteğe bağlı
Chrome 113 ve sonraki sürümler Chrome 148'den itibaren browser.*launchWebAuthFlowaracının etkileşimli olmayan modda toplamda çalışmasına izin verilen maksimum süre (milisaniye cinsinden). Yalnızcainteractive,falseise etkilidir. -
url
dize
Kimlik doğrulama akışını başlatan URL.
Yöntemler
clearAllCachedAuthTokens()
browser.identity.clearAllCachedAuthTokens(): Promise<void>
Identity API'nin durumunu sıfırlar:
- Jeton önbelleğindeki tüm OAuth2 erişim jetonlarını kaldırır.
- Kullanıcının hesap tercihlerini kaldırır.
- Kullanıcının tüm kimlik doğrulama akışlarındaki yetkisini kaldırır.
İadeler
-
Promise<void>
Chrome 106 ve sonraki sürümler Chrome 148'den itibaren browser.*Durum temizlendiğinde çözümlenen bir Promise döndürür.
getAccounts()
browser.identity.getAccounts(): Promise<AccountInfo[]>
Profilde bulunan hesapları açıklayan AccountInfo nesnelerinin listesini alır.
getAccounts yalnızca yeni geliştirilenler kanalında desteklenir.
İadeler
-
Promise<AccountInfo[]>
getAuthToken()
browser.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
oauth2manifest.json'un bölümünde belirtilen istemci kimliğini ve kapsamları kullanarak bir OAuth2 erişim jetonu alır.
Identity API, erişim jetonlarını bellekte önbelleğe alır. Bu nedenle, jeton gerektiğinde getAuthToken yöntemini etkileşimli olmayan bir şekilde çağırabilirsiniz. Jeton önbelleği, geçerlilik süresini otomatik olarak yönetir.
İyi bir kullanıcı deneyimi için etkileşimli jeton isteklerinin, uygulamanızdaki kullanıcı arayüzü tarafından başlatılması ve yetkilendirmenin ne amaçla yapıldığının açıklanması önemlidir. Bunu yapmazsanız kullanıcılarınız, bağlam olmadan yetkilendirme istekleri veya oturum açmamışlarsa Chrome oturum açma ekranları görür. Özellikle, uygulamanız ilk başlatıldığında getAuthToken etkileşimli olarak kullanılmamalıdır.
Not: Bir geri çağırma ile çağrıldığında bu işlev, bir nesne döndürmek yerine iki özelliği geri çağırmaya iletilen ayrı bağımsız değişkenler olarak döndürür.
Parametreler
-
ayrıntılar
TokenDetails isteğe bağlı
Jeton seçenekleri.
İadeler
-
Promise<GetAuthTokenResult>
Chrome 105 ve sonraki sürümler Chrome 148'den itibaren browser.*Manifest tarafından belirtilen bir OAuth2 erişim jetonuyla çözümlenen veya hata varsa reddedilen bir Promise döndürür.
grantedScopesparametresi, Chrome 87'den itibaren doldurulmaktadır. Bu parametre, mevcut olduğunda döndürülen jetona karşılık gelen izin verilen kapsamların listesini içerir.
getProfileUserInfo()
browser.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
Bir profilde oturum açmış kullanıcının e-posta adresini ve gizlenmiş gaia kimliğini alır.
identity.email manifest izni gerektirir. Aksi takdirde boş bir sonuç döndürülür.
Bu API, identity.getAccounts'tan iki açıdan farklıdır. Döndürülen bilgiler çevrimdışı olarak kullanılabilir ve yalnızca profilin birincil hesabı için geçerlidir.
Parametreler
-
ayrıntılar
ProfileDetails isteğe bağlı
Chrome 84 ve sonraki sürümler Chrome 148'den itibaren browser.*Profil seçenekleri.
İadeler
-
Promise<ProfileUserInfo>
Chrome 106 ve sonraki sürümler Chrome 148'den itibaren browser.*Birincil Chrome hesabının
ProfileUserInfodeğeriyle çözümlenen bir Promise döndürür. Belirtilendetailsdeğerine sahip hesap mevcut değilse boş birProfileUserInfodöndürür.
getRedirectURL()
browser.identity.getRedirectURL(
path?: string,
): string
launchWebAuthFlow içinde kullanılacak bir yönlendirme URL'si oluşturur.
Oluşturulan URL'ler https://<app-id>.chromiumapp.org/* kalıbıyla eşleşir.
Parametreler
-
yol
string isteğe bağlı
Oluşturulan URL'nin sonuna eklenen yol.
İadeler
-
dize
launchWebAuthFlow()
browser.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
): Promise<string | undefined>
Belirtilen URL'de bir kimlik doğrulama akışı başlatır.
Bu yöntem, bir web görünümü başlatıp sağlayıcının kimlik doğrulama akışındaki ilk URL'ye giderek Google dışı kimlik sağlayıcılarla kimlik doğrulama akışlarını etkinleştirir. Sağlayıcı, https://<app-id>.chromiumapp.org/* kalıbıyla eşleşen bir URL'ye yönlendirdiğinde pencere kapanır ve son yönlendirme URL'si callback işlevine iletilir.
İyi bir kullanıcı deneyimi için etkileşimli kimlik doğrulama akışlarının, uygulamanızdaki kullanıcı arayüzü tarafından başlatılması ve yetkilendirmenin ne amaçla yapıldığının açıklanması önemlidir. Bunu yapmazsanız kullanıcılarınız bağlamı olmayan yetkilendirme istekleri alır. Özellikle, uygulamanız ilk başlatıldığında etkileşimli bir kimlik doğrulama akışı başlatmayın.
Parametreler
-
ayrıntılar
WebAuth akış seçenekleri.
İadeler
-
Promise<string | undefined>
Chrome 106 ve sonraki sürümler Chrome 148'den itibaren browser.*Uygulamanıza geri yönlendirilen URL ile çözümlenen bir Promise döndürür.
removeCachedAuthToken()
browser.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
Identity API'nin jeton önbelleğinden bir OAuth2 erişim jetonunu kaldırır.
Erişim jetonunun geçersiz olduğu tespit edilirse önbellekten kaldırılması için removeCachedAuthToken'a iletilmelidir. Uygulama daha sonra getAuthToken ile yeni bir jeton alabilir.
Parametreler
-
ayrıntılar
Jeton bilgileri.
İadeler
-
Promise<void>
Chrome 106 ve sonraki sürümler Chrome 148'den itibaren browser.*Jeton önbellekten kaldırıldığında çözümlenen bir Promise döndürür.
Etkinlikler
onSignInChanged
browser.identity.onSignInChanged.addListener(
callback: function,
)
Kullanıcının profilindeki bir hesabın oturum açma durumu değiştiğinde tetiklenir.
Parametreler
-
callback
işlev
callbackparametresi şu şekilde görünür:(account: AccountInfo, signedIn: boolean) => void
-
hesap
-
signedIn
boole
-