Açıklama
OAuth2 erişim jetonlarını almak için chrome.identity API'sini kullanın.
İzinler
identityTürler
AccountInfo
Özellikler
-
id
dize
Hesabın benzersiz tanımlayıcısı. Bu kimlik, hesap kullanım süresi boyunca değişmez.
AccountStatus
Enum
"SYNC"
Senkronizasyonun birincil hesap için 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
dize 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 profile giriş yapılan birincil hesabın durumu. Varsayılan olarakSYNChesap durumu kullanılır.
ProfileUserInfo
Özellikler
-
e-posta
dize
Mevcut profilde oturum açmış kullanıcı hesabının e-posta adresi. Kullanıcı oturum açmamışsa veya
identity.emailmanifest izni belirtilmemişse boş olur. -
id
dize
Hesabın benzersiz tanımlayıcısı. Bu kimlik, hesap kullanım süresi boyunca değişmez. Kullanıcı oturum açmamışsa veya (M41'de ve sonraki sürümlerde)
identity.emailmanifest izni belirtilmemişse boş olur.
TokenDetails
Özellikler
-
hesap
AccountInfo isteğe bağlı
Jetonu döndürülmesi gereken hesabın kimliği. Belirtilmemişse işlev, Chrome profilindeki bir hesabı kullanır: varsa senkronizasyon hesabı, yoksa ilk Google web hesabı.
-
enableGranularPermissions
boolean isteğe bağlı
Chrome 87 ve sonraki sürümlerenableGranularPermissionsişareti, uzantıların istenen izinlerin ayrı ayrı verildiği veya reddedildiği ayrıntılı izinler kullanıcı rızası ekranını erken etkinleştirmesine olanak tanır. -
interactive
boolean isteğe bağlı
Jeton alma işlemi 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ıya gerektiği şekilde istem gösterir. İş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
boolean isteğe bağlı
Chrome 113 veya daha yeni bir sürümSayfa yüklendikten sonra etkileşimli olmayan istekler için
launchWebAuthFlow'nın sonlandı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 yararlıdır. -
interactive
boolean 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ı sonuç URL'sine hemen yönlendirebileceğinden
launchWebAuthFlow, ilk gezinme nihai URL'ye yönlendirilene veya görüntülenmesi 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 atlanmışsa ilk gezinme akışı tamamlamazsalaunchWebAuthFlowhata döndürür.Yönlendirme için JavaScript'in kullanıldığı akışlarda, sayfaya yönlendirme yapma fırsatı vermek için
abortOnLoadForNonInteractive,timeoutMsForNonInteractiveayarlanarakfalseolarak ayarlanabilir. -
timeoutMsForNonInteractive
number isteğe bağlı
Chrome 113 veya daha yeni bir sürümlaunchWebAuthFlowöğesinin toplamda etkileşimli olmayan modda çalışmasına izin verilen maksimum süre (milisaniye cinsinden). Yalnızcainteractivefalseise etkilidir. -
url
dize
Kimlik doğrulama akışını başlatan URL.
Yöntemler
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(): Promise<void>
Identity API'nin durumunu sıfırlar:
- Tüm OAuth2 erişim jetonlarını jeton önbelleğinden kaldırır.
- Kullanıcının hesap tercihlerini kaldırır.
- Kullanıcının tüm yetkilendirme akışlarındaki yetkisini kaldırır.
İadeler
-
Promise<void>
Chrome 106 ve sonraki sürümler
getAccounts()
chrome.identity.getAccounts(): Promise<AccountInfo[]>
Profildeki hesapları açıklayan AccountInfo nesnelerinin listesini alır.
getAccounts yalnızca geliştirme kanalında desteklenir.
İadeler
-
Promise<AccountInfo[]>
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
manifest.json dosyasının oauth2 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ğırmak sorun olmaz. 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 için yapıldığını açıklaması önemlidir. Bunu yapmamanız durumunda kullanıcılarınız, oturum açmamışlarsa Chrome oturum açma ekranlarıyla birlikte bağlam içermeyen yetkilendirme istekleri alır. Özellikle, uygulamanız ilk kez başlatıldığında getAuthToken öğesini etkileşimli olarak kullanmayın.
Not: 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 veya daha yeni bir sürüm
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
Bir profilde oturum açan kullanıcının e-posta adresini ve karartılmış Gaia kimliğini alır.
identity.email manifest izni gerektirir. Aksi takdirde boş bir sonuç döndürü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+Profil seçenekleri.
İadeler
-
Promise<ProfileUserInfo>
Chrome 106 ve sonraki sürümler
getRedirectURL()
chrome.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
dize isteğe bağlı
Oluşturulan URL'nin sonuna eklenen yol.
İadeler
-
dize
launchWebAuthFlow()
chrome.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 aktarılır.
İ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 için yapıldığının açıklanması önemlidir. Bunu yapmazsanız kullanıcılarınız bağlam içermeyen yetkilendirme istekleri alır. Özellikle, uygulamanız ilk kez 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
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
Bir OAuth2 erişim jetonunu Identity API'nin jeton önbelleğinden kaldırır.
Geçersiz olduğu tespit edilen erişim jetonları, ö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
Etkinlikler
onSignInChanged
chrome.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
boolean
-