Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
API loadExternalTokens()
MSAL Browser od verze 2.17.0 obsahuje rozhraní API loadExternalTokens(), které umožňuje načíst tokeny ID, přístupové a obnovovací tokeny do mezipaměti MSAL, odkud je pak lze načíst pomocí acquireTokenSilent().
Poznámka: Jedná se o pokročilou funkci, která je určená pouze pro účely testování v prostředí prohlížeče. Načítání tokenů do mezipaměti vaší aplikace může způsobit přerušení aplikace. Kromě toho doporučujeme loadExternalTokens() rozhraní API používat s testy jednotek a integrace. Pro E2E testování si místo toho prosím přečtěte náš TestingSample.
Rozhraní loadExternalTokens() API je veřejné rozhraní API usnadňující aplikacím vlastní načítání tokenů do mezipaměti MSAL.
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions,
);
loadExternalTokens() přijímá požadavek typu SilentRequest, odpověď typu ExternalTokenResponse a možnosti typu LoadTokenOptions.
Podívejte se na definice typů pro každý z nich, které lze importovat z @azure/msal-browser:
Načítání tokenů
Můžete zadat libovolnou kombinaci ID, přístupových a obnovovacích tokenů pro ukládání do mezipaměti, ale minimálně loadExternalTokens rozhraní API vyžaduje jednu z následujících sad vstupních parametrů k identifikaci přidružení tokenů a mezipaměti odpovídajícím způsobem:
- Objekt
SilentRequests informacemi o účtu NEBO - Objekt
SilentRequests autoritou A objektLoadTokenOptionssclientInfo, OR - Objekt
SilentRequests autoritou A objektem odpovědi serveru sclient_info - Objekt
SilentRequests autoritou A objektem odpovědi serveru sid_token
Následující příklady ukazují načítání tokenů jednotlivě, ale v jednom požadavku můžete zadat libovolných 1, 2 nebo všech 3.
Načítání tokenů ID
Kromě výše uvedených parametrů poskytují následující informace pro načtení tokenu ID:
- Odpověď serveru s polem
id_token
Účet se také nastaví v mezipaměti na základě výše uvedených informací.
Podívejte se na následující příklady kódu:
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
);
Načítání přístupových tokenů
Kromě výše uvedených parametrů poskytují následující informace pro načtení přístupového tokenu:
- Odpověď serveru obsahující
access_token,expires_in,token_typeascope
Podívejte se na následující příklady kódu:
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
);
Načítání obnovovacích tokenů
Kromě výše uvedených parametrů poskytují následující informace pro načtení obnovovacího tokenu:
- Odpověď serveru s
refresh_tokena volitelně srefresh_token_expires_in
Podívejte se na následující příklady kódu:
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
);