Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A loadExternalTokens() API
Az MSAL Browser 2.17.0-s verziójától kezdve bevezette az loadExternalTokens() API-t, amely lehetővé teszi az azonosító-, hozzáférési és frissítési tokenek betöltését az MSAL-gyorsítótárba, amelyek ezután a acquireTokenSilent() használatával kérhetők le.
Megjegyzés: Ez egy speciális funkció, amely csak a böngészőkörnyezetben való tesztelésre szolgál. A tokenek az alkalmazása gyorsítótárába való betöltése az alkalmazás hibás működését okozhatja. Emellett azt is javasoljuk loadExternalTokens() , hogy az API-t egység- és integrációs tesztekhez használja. Az E2E-teszteléshez tekintse meg inkább a TestingSample-et .
Az loadExternalTokens() API egy nyilvános API, amely lehetővé teszi, hogy az alkalmazások egyénileg betöltsék a tokeneket az MSAL-gyorsítótárba.
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions,
);
loadExternalTokens() típuskérést SilentRequest, típusválaszt ExternalTokenResponseés típusbeállításokat LoadTokenOptionsvesz fel.
Tekintse meg az egyes típusdefiníciókat, amelyek a következőből @azure/msal-browserimportálhatók:
Tokenek betöltése
Az azonosítók, a hozzáférési és a frissítési jogkivonatok bármilyen kombinációját megadhatja a gyorsítótárazáshoz, de legalább az loadExternalTokens API-nak a következő bemeneti paraméterek egyikét kell megadnia a jogkivonat-társítások azonosításához és a gyorsítótár megfelelő gyorsítótárazásához:
- Egy
SilentRequestobjektum fiókadatokkal, VAGY - Egy
SilentRequestobjektum a jogosultsággal ÉS egyLoadTokenOptionsobjektumclientInfo-val, VAGY - Egy
SilentRequestobjektum authoritással ÉS egy kiszolgáló-válaszobjektum ezzel:client_info - Egy
SilentRequestobjektum hitelesítéssel ÉS egy kiszolgáló-válaszobjektumid_tokenelemmel
Az alábbi példák a tokenek egyenkénti betöltését mutatják be, azonban egyetlen kérésben megadhat 1, 2 vagy mind a 3 tokent.
Azonosító tokenek betöltése
Az azonosító jogkivonat betöltéséhez a fent felsorolt paraméterek mellett az alábbiakat is meg kell adnia:
- Kiszolgáló válasza a
id_tokenmezővel
A fiók a gyorsítótárban is be lesz állítva a fent megadott információk alapján.
Lásd az alábbi kód példákat:
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
);
Hozzáférési jogkivonatok betöltése
A fent felsorolt paraméterek mellett a következő lehetőségeket is biztosítjuk egy hozzáférési jogkivonat betöltéséhez:
- Kiszolgálóválasz ezzel:
access_token,expires_in,token_typeésscope
Lásd az alábbi kód példákat:
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
);
Frissítési tokenek betöltése
A fent felsorolt paraméterek mellett adja meg a következőket egy frissítési jogkivonat betöltéséhez:
- A kiszolgáló válasza egy
refresh_tokenelemmel, illetve opcionálisanrefresh_token_expires_inelemmel
Lásd az alábbi kód példákat:
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
);