Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
loadExternalTokens() API'si
MSAL Browser'a 2.17.0 sürümünden itibaren, kimlik, erişim ve yenileme belirteçlerinin MSAL önbelleğine yüklenmesine olanak tanıyan loadExternalTokens() API'si eklenmiştir; bunlar daha sonra acquireTokenSilent() kullanılarak alınabilir.
Not: Bu, yalnızca tarayıcı ortamında test amacıyla tasarlanmış gelişmiş bir özelliktir. Belirteçleri uygulamanızın önbelleğine yüklemek uygulamanızın bozulmasına neden olabilir. Ayrıca, API'nin birim ve tümleştirme testleriyle kullanılmasını öneririz loadExternalTokens() . E2E testi için lütfen bunun yerine TestingSample bölümüne bakın.
loadExternalTokens() API, uygulamaların belirteçleri MSAL önbelleğine özel olarak yüklemesini sağlayan genel bir API'dir.
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions,
);
loadExternalTokens(), SilentRequest türünde bir istek, ExternalTokenResponse türünde bir yanıt ve LoadTokenOptions türünde seçenekler alır.
Her biri için, @azure/msal-browser içinden içe aktarılabilen tür tanımlarına bakın:
Belirteçleri yükleme
Önbelleğe alma için kimlik, erişim ve yenileme belirteçlerinin herhangi bir bileşimini sağlayabilirsiniz, ancak en azından loadExternalTokens API, belirteç ilişkilendirmelerini tanımlamak ve uygun şekilde önbelleğe almak için aşağıdaki giriş parametreleri kümelerinden birini gerektirir:
-
SilentRequestHesap bilgilerine sahip bir nesne, VEYA - yetkisine sahip bir
SilentRequestnesne VEclientInfoolan birLoadTokenOptionsnesne VEYA - yetkiye sahip bir
SilentRequestnesnesi veclient_infoiçeren bir sunucu yanıt nesnesi - yetkiye sahip bir
SilentRequestnesnesi VEid_tokeniçeren bir sunucu yanıt nesnesi
Aşağıdaki örneklerde belirteçlerin ayrı ayrı yüklenmesi gösterilmektedir, ancak tek bir istekte 1, 2 veya 3'ünü de sağlayabilirsiniz.
Kimlik belirteçleri yükleniyor
Yukarıda listelenen parametrelere ek olarak, kimlik belirtecini yüklemek için aşağıdakileri sağlayın:
-
id_tokenalanına sahip bir sunucu yanıtı
Ayrıca, yukarıda verilen bilgilere göre önbellekte bir hesap ayarlanır.
Aşağıdaki kod örneklerine bakın:
const config: Configuration = {
auth: { clientId: "your-client-id" },
};
const silentRequest: SilentRequest = {
account: {
homeAccountId: "your-home-account-id",
environment: "login.microsoftonline.com",
tenantId: "your-tenant-id",
username: "test@contoso.com",
localAccountId: "your-local-account-id",
},
};
const serverResponse: ExternalTokenResponse = {
id_token: "id-token-here",
};
const loadTokenOptions: LoadTokenOptions = {};
const pca = new PublicClientApplication(config);
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions
);
// OR
const config: Configuration = {
auth: { clientId: "your-client-id" },
};
const silentRequest: SilentRequest = {
scopes: [],
authority: "https://login.microsoftonline.com/your-tenant-id",
};
const serverResponse: ExternalTokenResponse = {
id_token: "id-token-here",
};
const loadTokenOptions: LoadTokenOptions = {
clientInfo: "client-info-here",
};
const pca = new PublicClientApplication(config);
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions
);
// OR
const config: Configuration = {
auth: { clientId: "your-client-id" },
};
const silentRequest: SilentRequest = {
scopes: [],
authority: "https://login.microsoftonline.com/your-tenant-id",
};
const serverResponse: ExternalTokenResponse = {
id_token: "id-token-here",
client_info: "client-info-here",
};
const loadTokenOptions: LoadTokenOptions = {};
const pca = new PublicClientApplication(config);
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions
);
Erişim belirteçlerini yükleme
Yukarıda listelenen parametrelere ek olarak, erişim belirtecini yüklemek için aşağıdakileri sağlayın:
-
access_token,expires_in,token_typevescopeiçeren bir sunucu yanıtı
Aşağıdaki kod örneklerine bakın:
const config: Configuration = {
auth: { clientId: "your-client-id" },
};
const silentRequest: SilentRequest = {
scopes: ["User.Read", "email"],
account: {
homeAccountId: "your-home-account-id",
environment: "login.microsoftonline.com",
tenantId: "your-tenant-id",
username: "test@contoso.com",
localAccountId: "your-local-account-id",
},
};
const serverResponse: ExternalTokenResponse = {
token_type: AuthenticationScheme.BEARER, // "Bearer"
scope: "User.Read email",
expires_in: 3599,
access_token: "access-token-here",
};
const loadTokenOptions: LoadTokenOptions = {
extendedExpiresOn: 6599,
};
const pca = new PublicClientApplication(config);
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions
);
Yenileme belirteçlerini yükleme
Yukarıda listelenen parametrelere ek olarak, yenileme belirtecini yüklemek için aşağıdakileri sağlayın:
-
refresh_tokeniçeren ve isteğe bağlı olarakrefresh_token_expires_inde içeren bir sunucu yanıtı
Aşağıdaki kod örneklerine bakın:
const config: Configuration = {
auth: { clientId: "your-client-id" },
};
const silentRequest: SilentRequest = {
scopes: [],
account: {
homeAccountId: "your-home-account-id",
environment: "login.microsoftonline.com",
tenantId: "your-tenant-id",
username: "test@contoso.com",
localAccountId: "your-local-account-id",
},
};
const serverResponse: ExternalTokenResponse = {
refresh_token: "refresh-token-here",
refresh_token_expires_in: "86399",
};
const loadTokenOptions: LoadTokenOptions = {};
const pca = new PublicClientApplication(config);
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions
);