Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A API loadExternalTokens()
O MSAL Browser, a partir da versão 2.17.0, adicionou a API loadExternalTokens(), que permite carregar tokens de identidade, acesso e atualização no cache do MSAL, que podem ser recuperados usando acquireTokenSilent().
Observação: esse é um recurso avançado destinado apenas a fins de teste no ambiente do navegador. Carregar tokens no cache do aplicativo pode fazer com que o aplicativo seja interrompido. Além disso, recomendamos loadExternalTokens() que a API seja usada com testes de unidade e integração. Para testes E2E, consulte nosso TestingSample em vez disso.
A loadExternalTokens() API é uma API pública que facilita aplicativos para carregar tokens personalizados para o cache MSAL.
await loadExternalTokens(
config,
silentRequest,
serverResponse,
loadTokenOptions,
);
loadExternalTokens() recebe uma solicitação de tipo SilentRequest, uma resposta de tipo ExternalTokenResponsee opções de tipo LoadTokenOptions.
Consulte as definições de tipo para cada um deles, que podem ser importadas de @azure/msal-browser:
Carregando tokens
Você pode fornecer qualquer combinação de token de ID, token de acesso e token de atualização para armazenamento em cache, mas, no mínimo, a API loadExternalTokens requer um dos seguintes conjuntos de parâmetros de entrada para identificar associações entre tokens e realizar o armazenamento em cache adequadamente:
- Um
SilentRequestobjeto com informações de conta, OR - Um objeto
SilentRequestcom a autoridade E um objetoLoadTokenOptionscomclientInfo, OU - Um objeto
SilentRequestcom a permissão de acesso E um objeto de resposta do servidor comclient_info - Um objeto
SilentRequestque tenha autoridade E um objeto de resposta do servidor comid_token
Os exemplos abaixo mostram o carregamento de tokens individualmente, no entanto, você pode fornecer qualquer 1, 2 ou todos os 3 em uma única solicitação.
Carregando tokens de ID
Além dos parâmetros listados acima , forneça o seguinte para carregar um token de id:
- Uma resposta do servidor com o
id_tokencampo
Uma conta também será definida no cache com base nas informações fornecidas acima.
Veja os exemplos de código abaixo:
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
);
Carregando tokens de acesso
Além dos parâmetros listados acima , forneça o seguinte para carregar um token de acesso:
- Uma resposta do servidor com uma
access_token,expires_in,token_typeescope
Veja os exemplos de código abaixo:
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
);
Carregando tokens de atualização
Além dos parâmetros listados acima , forneça o seguinte para carregar um token de atualização:
- Uma resposta de servidor com um
refresh_tokene, opcionalmente,refresh_token_expires_in
Veja os exemplos de código abaixo:
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
);