Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
API loadExternalTokens()
MSAL Browser od wersji 2.17.0 udostępnia interfejs API loadExternalTokens(), który umożliwia ładowanie tokenów identyfikacyjnych, dostępu i odświeżania do pamięci podręcznej MSAL, skąd można je następnie pobrać za pomocą acquireTokenSilent().
Uwaga: jest to zaawansowana funkcja przeznaczona tylko do celów testowych w środowisku przeglądarki. Ładowanie tokenów do pamięci podręcznej aplikacji może spowodować przerwanie działania aplikacji. Ponadto zalecamy używanie interfejsu loadExternalTokens() API z testami jednostkowymi i integracyjnymi. W przypadku testów E2E zapoznaj się zamiast tego z naszym TestingSample.
Interfejs API loadExternalTokens() jest publicznym interfejsem API, który umożliwia aplikacjom niestandardowe ładowanie tokenów do pamięci podręcznej biblioteki MSAL.
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions,
);
loadExternalTokens() przyjmuje żądanie typu SilentRequest, odpowiedź typu ExternalTokenResponsei opcje typu LoadTokenOptions.
Zapoznaj się z definicjami typów dla każdego z nich, które można zaimportować z @azure/msal-browser:
Ładowanie tokenów
Do buforowania można podać dowolną kombinację tokenów ID, dostępu i odświeżania, ale interfejs API loadExternalTokens wymaga co najmniej jednego z poniższych zestawów parametrów wejściowych, aby zidentyfikować powiązania tokenów i odpowiednio użyć pamięci podręcznej:
-
SilentRequestObiekt z informacjami o koncie LUB -
SilentRequestobiekt z uprawnieniem orazLoadTokenOptionsobiekt zclientInfo, lub - Obiekt
SilentRequestz uprawnieniem ORAZ obiekt odpowiedzi serwera zclient_info - Obiekt
SilentRequestz uprawnieniami oraz obiekt odpowiedzi serwera zid_token
W poniższych przykładach pokazano pojedyncze tokeny ładowania, jednak w jednym żądaniu możesz podać dowolne 1, 2 lub wszystkie 3.
Ładowanie tokenów identyfikacyjnych
Oprócz parametrów wymienionych powyżej podaj następujące informacje, aby załadować token identyfikatora:
- Odpowiedź serwera z polem
id_token
Konto zostanie również ustawione w pamięci podręcznej na podstawie podanych powyżej informacji.
Zapoznaj się z poniższymi przykładami kodu:
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
);
Ładowanie tokenów dostępu
Oprócz parametrów wymienionych powyżej podaj następujące informacje, aby załadować token dostępu:
- Odpowiedź serwera z elementem
access_token,expires_in,token_typeiscope
Zapoznaj się z poniższymi przykładami kodu:
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
);
Ładowanie tokenów odświeżania
Oprócz parametrów wymienionych powyżej podaj następujące informacje, aby załadować token odświeżania:
- Odpowiedź serwera z elementem
refresh_tokeni opcjonalnierefresh_token_expires_in
Zapoznaj się z poniższymi przykładami kodu:
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
);