Chamar APIs do AEM baseadas em OpenAPI usando a autenticação do OAuth Web App
Saiba como chamar APIs do AEM baseadas em OpenAPI no AEM as a Cloud Service usando a autenticação baseada em usuário de um aplicativo Web personalizado que usa o OAuth Web App.
A autenticação do Aplicativo Web OAuth é ideal para aplicativos Web com componentes de front-end e back-end que precisam acessar APIs do AEM em nome de um usuário. Ele usa o tipo de concessão OAuth 2.0 authorization_code para obter um token de acesso em nome do usuário para acessar as APIs do AEM. Para obter mais informações, consulte Diferença entre credenciais de servidor para servidor do OAuth vs. aplicativo da Web vs. aplicativo de página única.
O que você aprenderá what-you-learn
Neste tutorial, você aprenderá a:
-
Configure um projeto do Adobe Developer Console (ADC) para acessar a API do Assets Author usando a autenticação do OAuth Web App.
-
Implemente o fluxo de autenticação do OAuth Web App em um aplicativo Web personalizado.
- Autenticação de usuário IMS e autorização de aplicativo.
- Recuperação de token de acesso específico do usuário.
- Acesso a APIs do AEM baseadas em OpenAPI usando o token de acesso específico do usuário.
Antes de começar, verifique se você revisou o seguinte:
Aplicativo Web de amostra: Visão geral e fluxo funcional do WKND-PIM
Vamos entender o aplicativo da Web de amostra, o Gerenciamento de informações de produto (PIM) da WKND e seu fluxo funcional.
O aplicativo WKND PIM é um aplicativo da Web de amostra projetado para gerenciar atributos de produto e seus metadados de ativos armazenados no AEM as a Cloud Service. Este exemplo demonstra como os aplicativos da Web podem se integrar perfeitamente às APIs do Adobe para fornecer fluxos de trabalho eficientes e centrados no usuário.
O projeto Adobe Developer Console (ADC) é configurado para acessar a API do autor do Assets usando a autenticação do aplicativo web OAuth. Ele fornece o client_id e o client_secret necessários ao aplicativo Web WKND-PIM para iniciar o fluxo de concessão do authorization_code.
O diagrama a seguir ilustra o fluxo funcional do aplicativo Web WKND-PIM obtendo tokens de acesso específicos do usuário para interagir com a API do Assets Author.
- O aplicativo web inicia o processo redirecionando o usuário para o Adobe Identity Management System (IMS) para autenticação.
- Junto com o redirecionamento, o aplicativo Web passa o client_id e o redirect_uri necessários para o IMS.
- O IMS autentica o usuário e o envia de volta para o redirect_uri especificado com um authorization_code.
- O aplicativo Web troca o authorization_code com IMS por um token de acesso específico do usuário, usando sua client_id e client_secret.
- Após a validação bem-sucedida, o IMS emite o token de acesso específico do usuário.
- O aplicativo Web usa com segurança o token de acesso para interagir com a API do Autor do Assets, permitindo que o usuário recupere ou atualize os metadados do ativo do produto.
O aplicativo Web WKND-PIM é desenvolvido com o Node.js e o Express. O Express atua como o servidor que gerencia com segurança segredos privados e tokens de acesso específicos do usuário.
Outras pilhas da Web (Java, Python, baseado em .NET etc.) podem ser usadas para criar aplicativos Web que se integram às APIs do Adobe usando as abordagens ilustradas neste tutorial.
Como usar este tutorial how-to-use-this-tutorial
Você pode Revisar a seção de trechos de código da chave do aplicativo Web para entender o fluxo de autenticação do aplicativo Web OAuth e os trechos de código de chamadas da API usados no aplicativo Web WKND-PIM. Ou prossiga diretamente para a seção Configurar e executar o aplicativo Web para configurar e executar o aplicativo Web WKND-PIM no computador local para entender o fluxo de autenticação e as chamadas de API do aplicativo Web OAuth.
Revisar trechos de código-chave do aplicativo da Web review-web-app-key-code-snippets
Vamos analisar os trechos de código principais usados no aplicativo Web WKND-PIM para entender o fluxo de autenticação do aplicativo Web OAuth e as chamadas de API.
Baixe o código do aplicativo Web WKND-PIM
-
Baixe o arquivo zip do aplicativo Web WKND-PIM e extraia-o.
-
Navegue até a pasta extraída e abra o arquivo
.env.example
em seu editor de código favorito. Revise os parâmetros de configuração necessários.code language-plaintext ######################################################################## # Adobe IMS, Adobe Developer Console (ADC), and AEM Assets Information ######################################################################## # Adobe IMS OAuth endpoints ADOBE_IMS_AUTHORIZATION_ENDPOINT=https://ims-na1.adobelogin.com/ims/authorize/v2 ADOBE_IMS_TOKEN_ENDPOINT=https://ims-na1.adobelogin.com/ims/token/v3 ADOBE_IMS_USERINFO_ENDPOINT=https://ims-na1.adobelogin.com/ims/userinfo/v2 # Adobe Developer Console (ADC) Project's OAuth Web App credential ADC_CLIENT_ID=<ADC Project OAuth Web App credential ClientID> ADC_CLIENT_SECRET=<ADC Project OAuth Web App credential Client Secret> ADC_SCOPES=<ADC Project OAuth Web App credential credential Scopes> # AEM Assets Information AEM_ASSET_HOSTNAME=<AEM Assets Hostname, e.g., https://author-p63947-e1502138.adobeaemcloud.com/> AEM_ASSET_IDS=< AEM Asset IDs Comma Seperated, e.g., urn:aaid:aem:9f20a8ce-934a-4560-8720-250e529fbb17,urn:aaid:aem:6e0123cd-8a67-4d1f-b721-1b3da987d831> ################################################ # Web App Information ################################################ # The port number on which this server (web app) will run PORT = 3000 # The URL to which the user will be redirected after the OAuth flow is complete REDIRECT_URI=https://localhost:3001/callback # The Express (express-session) uses this secret to encrypt and verify the authenticity of that cookie EXPRESS_SESSION_SECRET=<Express Session Secret>
É necessário substituir os espaços reservados pelos valores reais do projeto Adobe Developer Console (ADC) e da instância do AEM as a Cloud Service Assets.
Autenticação de usuário IMS e autorização de aplicativo
Vamos revisar o código que inicia a autenticação de usuário IMS e a autorização do aplicativo. Para revisar ou atualizar os metadados do ativo, o usuário deve se autenticar no Adobe IMS e autorizar que o aplicativo Web WKND-PIM acesse a API do autor do Assets em nome dele.
Na primeira tentativa de logon, o usuário deve fornecer consentimento para permitir que o aplicativo Web WKND-PIM acesse a API do autor do Assets em nome dele.
-
O arquivo
routes/update-product-attributes.js
verifica se a Sessão expressa do usuário tem um token de acesso. Caso contrário, ele redireciona o usuário para a rota/auth
.code language-javascript ... // The update-product-attributes route, shows the product attributes form with tabs router.get("/update-product-attributes", async (req, res) => { // Check if the user is authenticated, if not redirect to the auth route if (!req.session.accessToken) { return res.redirect("/auth"); } ... });
-
No arquivo
routes/adobe-ims-auth.js
, a rota/auth
inicia a autenticação de usuário IMS e o fluxo de autorização do aplicativo. Observe os parâmetros client_id, redirect_uri e response_type passados para o ponto de extremidade de autorização do Adobe IMS.code language-javascript ... // Route to initiate Adobe IMS user authentication router.get("/auth", (req, res) => { // Redirect user to Adobe IMS authorization endpoint try { // Constructing the authorization URL const params = new URLSearchParams({ client_id: adobeADCConfig.clientId, redirect_uri: redirectUri, response_type: "code", }); // Append scopes if defined in configuration if (adobeADCConfig?.scopes) params.append("scope", adobeADCConfig.scopes); // Redirect user to Adobe IMS authorization URL const imsAuthorizationUrl = `${ adobeIMSConfig.authorizationEndpoint }?${params.toString()}`; res.redirect(imsAuthorizationUrl); } catch (error) { console.error("Error initiating Adobe IMS authentication:", error); res.status(500).send("Unable to initiate authentication"); } }); ...
Se o usuário não estiver autenticado no Adobe IMS, a página de logon do Adobe ID será exibida solicitando a autenticação do usuário.
Se já estiver autenticado, o usuário será redirecionado de volta para o redirect_uri especificado do aplicativo Web WKND-PIM com um authorization_code.
Recuperação de token de acesso
O aplicativo Web WKND-PIM troca com segurança o authorization_code com o Adobe IMS por um token de acesso específico do usuário usando o client_id e o client_secret da credencial do aplicativo Web OAuth do projeto ADC.
No arquivo routes/adobe-ims-auth.js
, a rota /callback
troca o authorization_code com o Adobe IMS para um token de acesso específico do usuário.
...
// Callback route to exchange authorization code for access token
router.get("/callback", async (req, res) => {
// Extracting authorization code from the query parameters
const authorizationCode = req.query.code;
if (!authorizationCode) {
return res.status(400).send("Missing authorization code");
}
// Exchange authorization code for access token
try {
// Fetch access token from Adobe IMS token endpoint
const response = await fetch(adobeIMSConfig.tokenEndpoint, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: `Basic ${Buffer.from(
`${adobeADCConfig.clientId}:${adobeADCConfig.clientSecret}`
).toString("base64")}`,
},
body: new URLSearchParams({
code: authorizationCode,
grant_type: "authorization_code",
}),
});
if (!response.ok) {
console.error("Failed to fetch access token:", response.statusText);
return res.status(500).send("Failed to fetch access token");
}
const data = await response.json();
if (!data.access_token) {
console.error("Access token missing in the response:", data);
return res.status(500).send("Invalid response from token endpoint");
}
// For debugging purposes
console.log("Access token:", data.access_token);
// Store the access token in the session
req.session.accessToken = data.access_token;
// Redirect user to update product attributes
res.redirect("/update-product-attributes");
} catch (error) {
console.error("Error exchanging authorization code:", error);
res.status(500).send("Error during token exchange");
}
});
O token de acesso é armazenado na sessão expressa para solicitações subsequentes à API do autor do Assets.
Acesso a APIs do AEM baseadas em OpenAPI usando o token de acesso
O aplicativo Web WKND-PIM usa com segurança o token de acesso específico do usuário para interagir com a API do autor do Assets, permitindo que o usuário recupere ou atualize os metadados de ativos do produto.
No arquivo routes/invoke-aem-apis.js
, as rotas /api/getAEMAssetMetadata
e /api/updateAEMAssetMetadata
invocam as APIs de Autor do Assets usando o token de acesso.
...
// API Route: Get AEM Asset Metadata
router.get("/api/getAEMAssetMetadata", async (req, res) => {
const assetId = req.query.assetId;
const bucketName = getBucketName(aemAssetsConfig.hostname);
if (!assetId || !bucketName) {
return res.status(400).json({ error: "Missing AEM Information" });
}
// Get the access token from the session
const accessToken = req.session.accessToken;
if (!accessToken) {
return res.status(401).json({ error: "Not Authenticated with Adobe IMS" });
}
try {
const assetMetadata = await invokeGetAssetMetadataAPI(
bucketName,
assetId,
accessToken
);
const filteredMetadata = getFilteredMetadata(JSON.parse(assetMetadata));
res.status(200).json(filteredMetadata);
} catch (error) {
console.error("Error getting asset metadata:", error.message);
res.status(500).json({ error: `Internal Server Error: ${error.message}` });
}
});
// Helper function to invoke the AEM API to get asset metadata
async function invokeGetAssetMetadataAPI(bucketName, assetId, accessToken) {
const apiUrl = `https://${bucketName}.adobeaemcloud.com/adobe/assets/${assetId}/metadata`;
// For debugging purposes
console.log("API URL:", apiUrl);
console.log("Access Token:", accessToken);
console.log("API Key:", adobeADCConfig.clientId);
try {
const response = await fetch(apiUrl, {
method: "GET",
headers: {
"If-None-Match": "string",
"X-Adobe-Accept-Experimental": "1",
Authorization: `Bearer ${accessToken}`,
"X-Api-Key": adobeADCConfig.clientId,
},
});
console.log("Response Status:", response.status);
if (!response.ok) {
throw new Error(`AEM API Error: ${response.statusText}`);
}
return await response.text();
} catch (error) {
throw new Error(`Failed to fetch asset metadata: ${error.message}`);
}
}
// Helper function to filter the metadata properties like pim: and dc:
function getFilteredMetadata(data) {
if (!data || !data.assetMetadata) {
throw new Error("Invalid metadata structure received from API");
}
const properties = data.assetMetadata;
return Object.keys(properties).reduce((filtered, key) => {
if (
key.startsWith("pim:") ||
key === "dc:title" ||
key === "dc:description"
) {
filtered[key] = properties[key];
}
return filtered;
}, {});
}
// API Route: Update AEM Asset Metadata
router.post("/api/updateAEMAssetMetadata", async (req, res) => {
const { assetId, metadata } = req.body;
if (!assetId || !metadata || typeof metadata !== "object") {
return res.status(400).json({ error: "Invalid or Missing Metadata" });
}
const bucketName = getBucketName(aemAssetsConfig.hostname);
if (!bucketName) {
return res.status(400).json({ error: "Missing AEM Information" });
}
const accessToken = req.session.accessToken;
if (!accessToken) {
return res.status(401).json({ error: "Not Authenticated with Adobe IMS" });
}
try {
const updatedMetadata = await invokePatchAssetMetadataAPI(
bucketName,
assetId,
metadata,
accessToken
);
res.status(200).json(updatedMetadata);
} catch (error) {
console.error("Error updating asset metadata:", error.message);
res.status(500).json({ error: `Internal Server Error: ${error.message}` });
}
});
// Helper function to invoke the AEM API to update asset metadata
async function invokePatchAssetMetadataAPI(
bucketName,
assetId,
metadata,
accessToken
) {
const apiUrl = `https://${bucketName}.adobeaemcloud.com/adobe/assets/${assetId}/metadata`;
const headers = {
"Content-Type": "application/json-patch+json",
"If-Match": "*",
"X-Adobe-Accept-Experimental": "1",
Authorization: `Bearer ${accessToken}`,
"X-Api-Key": adobeADCConfig.clientId,
};
try {
const response = await fetch(apiUrl, {
method: "PATCH",
headers,
body: JSON.stringify(getTransformedMetadata(metadata)),
});
if (!response.ok) {
throw new Error(`AEM API Error: ${response.statusText}`);
}
return await response.json();
} catch (error) {
throw new Error(`Failed to update asset metadata: ${error.message}`);
}
}
// Helper function to transform metadata into JSON Patch format, e.g. [{ op: "add", path: "dc:title", value: "New Title" }]
function getTransformedMetadata(metadata) {
return Object.keys(metadata).map((key) => ({
op: "add",
path: `/${key}`,
value: metadata[key],
}));
}
As chamadas da API do AEM baseadas em OpenAPI são feitas do lado do servidor (middleware expresso) e não diretamente do lado do cliente (navegador) para garantir que o token de acesso seja gerenciado com segurança e não exposto ao lado do cliente.
Atualizar o token de acesso
Para atualizar o token de acesso antes que ele expire, você pode implementar o fluxo do token de atualização. No entanto, para manter o tutorial simples, o aplicativo Web WKND-PIM não implementa o fluxo de token de atualização.
Configurar e executar o aplicativo Web
Vamos configurar e executar o aplicativo Web WKND-PIM no computador local para entender o fluxo de autenticação do aplicativo Web OAuth e as chamadas de API.
Pré-requisitos
Para concluir este tutorial, você precisa:
-
Ambiente AEM as a Cloud Service modernizado com o seguinte:
- Versão do AEM
2024.10.18459.20241031T210302Z
ou posterior. - Novos perfis de produto de estilo (se o ambiente tiver sido criado antes de novembro de 2024)
Consulte o artigo Configurar APIs do AEM baseadas em OpenAPI para obter mais detalhes.
- Versão do AEM
-
O projeto WKND Sites de amostra deve ser implantado nele.
-
Acesso à Adobe Developer Console.
-
Instale o Node.js no computador local para executar o aplicativo NodeJS de amostra.
-
Instale um local-ssl-proxy no computador local para criar um proxy HTTP SSL local usando um certificado autoassinado.
Etapas de desenvolvimento
As etapas de desenvolvimento de alto nível são:
-
Configurar projeto ADC
- Adicionar a API do autor do Assets
- Configurar a credencial do aplicativo web OAuth
-
Configure a instância do AEM para habilitar a comunicação do Projeto ADC
-
No AEM, crie e aplique o esquema de metadados de ativos
-
Configure e execute o aplicativo Web WKND-PIM
-
Verificar o fluxo de ponta a ponta
Configurar projeto ADC
A etapa de configuração do Projeto ADC é repetida das APIs do AEM baseadas em OpenAPI de Instalação. É repetido adicionar a API do autor do Assets e configurar seu método de autenticação como OAuth Web App.
-
No Adobe Developer Console, abra o projeto desejado.
-
Para adicionar APIs do AEM, clique no botão Adicionar API.
-
Na caixa de diálogo Adicionar API, filtre por Experience Cloud, selecione o cartão API do AEM Assets Author e clique em Avançar.
note tip TIP Se o cartão de API do AEM desejado estiver desabilitado e Por que isso está desabilitado?As informações do mostram a mensagem Licença necessária, uma das razões pode ser que você NÃO tenha modernizado seu ambiente do AEM as a Cloud Service. Consulte Modernização do ambiente do AEM as a Cloud Service para obter mais informações. -
Em seguida, na caixa de diálogo Configurar API, selecione a opção de autenticação Autenticação de Usuário e clique em Avançar.
-
Na próxima caixa de diálogo Configurar API, selecione a opção de autenticação Aplicativo Web OAuth e clique em Avançar.
-
Na caixa de diálogo Configurar OAuth Web App, insira os detalhes a seguir e clique em Avançar.
- URI de redirecionamento padrão:
https://localhost:3001/callback
- Padrão de URI de redirecionamento:
https://localhost:3001/callback
- URI de redirecionamento padrão:
-
Revise os escopos disponíveis e clique em Salvar API configurada.
-
Revise a API do AEM e a configuração de autenticação.
Configurar instância do AEM para habilitar a comunicação do Projeto ADC
Siga as instruções do artigo Configurar APIs do AEM baseadas em OpenAPI para configurar a instância do AEM para habilitar a comunicação do Projeto ADC.
Criar e aplicar o esquema de metadados de ativos
Por padrão, o projeto WKND Sites não tem o esquema de metadados de ativos necessário para exibir os atributos do produto. Vamos criar e aplicar o esquema de metadados de ativos a uma pasta de ativos na instância do AEM.
-
Faça logon na instância do AEM as a Cloud Service Asset. Usando a Exibição de ativos, navegue até a pasta
/content/dam/wknd-shared/en
. -
Crie um PIM e dentro dele crie a pasta Camping e carregue imagens de exemplo na pasta Camping.
Em seguida, vamos criar o esquema de metadados específico do atributo PIM e aplicá-lo à pasta PIM.
-
Navegue até a opção Configurações > Forms de metadados no painel esquerdo e clique no botão Criar.
-
Na caixa de diálogo Criar Formulário de Metadados, insira os detalhes a seguir e clique em Criar.
- Nome:
PIM
- Usar estrutura de formulário existente como modelo:
Check
- Escolher de:
default
- Nome:
-
Clique no ícone + para adicionar uma nova guia PIM e adicionar componentes de Texto de Linha Única a ela. Os nomes de propriedades de metadados devem começar com o prefixo
pim:
.table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 Rótulo Espaço reservado Propriedade de metadados SKU Inserir ID da SKU pim:sku
Tipo de produto Por exemplo, mochila, tenda, jaqueta pim:productType
Categoria do produto Por exemplo, Acampamento, Caminhada, Escalada pim:productCategory
Fabricante Inserir nome do fabricante pim:manufacturer
Modelo Inserir nome do modelo pim:model
Nome da marca Inserir o nome da marca pim:brandName
-
Clique em Salvar e Fechar para salvar o formulário de metadados.
-
Finalmente, aplique o esquema de metadados PIM à pasta PIM.
Com as etapas acima, os ativos da pasta PIM estão prontos para armazenar os metadados de atributos do produto.
Configure e execute o aplicativo Web WKND-PIM
-
Baixe o arquivo zip do aplicativo Web WKND-PIM e extraia-o.
-
Navegue até a pasta extraída e copie o arquivo
.env.example
para.env
. -
Atualize o arquivo
.env
com os parâmetros de configuração necessários do Projeto do Adobe Developer Console (ADC) e da instância do AEM as a Cloud Service Assets.code language-plaintext ######################################################################## # Adobe IMS, Adobe Developer Console (ADC), and AEM Assets Information ######################################################################## # Adobe IMS OAuth endpoints ADOBE_IMS_AUTHORIZATION_ENDPOINT=https://ims-na1.adobelogin.com/ims/authorize/v2 ADOBE_IMS_TOKEN_ENDPOINT=https://ims-na1.adobelogin.com/ims/token/v3 ADOBE_IMS_USERINFO_ENDPOINT=https://ims-na1.adobelogin.com/ims/userinfo/v2 # Adobe Developer Console (ADC) Project OAuth Web App credential ADC_CLIENT_ID=e1adsfsd59384320bbe4f9298f00b7ab ADC_CLIENT_SECRET=p8e-Mdfgfdsg43RHugVRTEOyWlmEU5m ADC_SCOPES=AdobeID,openid,aem.folders,aem.assets.author # AEM Assets Information AEM_ASSET_HOSTNAME=https://author-p3947-e1542138.adobeaemcloud.com/ AEM_ASSET_IDS=urn:aaid:aem:aa689a9f-04da-4fbb-b460-74a5b6a69090,urn:aaid:aem:e4fdb6f6-1007-4e84-9726-a9522931786a ################################################ # Web App Information ################################################ # The port number on which this server (web app) will run PORT = 3000 # The URL to which the user will be redirected after the OAuth flow is complete REDIRECT_URI=http://localhost:3000/auth/callback # The Express (express-session) uses this secret to encrypt and verify the authenticity of that cookie # For demonstration purposes, this is a simple secret. In production, you should use a strong secret EXPRESS_SESSION_SECRET=1234554321
O
AEM_ASSET_IDS
é o valor da propriedadejcr:uuid
das imagens carregadas na pasta Camping. Consulte esta seção para obter mais detalhes. -
Abra um terminal e navegue até a pasta extraída. Instale as dependências necessárias usando o comando a seguir.
code language-bash $ npm install
-
Inicie o aplicativo Web WKND-PIM usando o comando a seguir.
code language-bash $ npm start
-
Execute o proxy HTTP SSL local usando o comando a seguir.
code language-bash $ local-ssl-proxy --source 3001 --target 3000 --cert ./ssl/server.crt --key ./ssl/server.key
O proxy HTTP SSL local é usado, pois o IMS requer que o URI de redirecionamento seja HTTPS.
Verificar o fluxo de ponta a ponta
-
Abra um navegador e navegue até
https://localhost:3001
para acessar o aplicativo Web WKND-PIM. Aceite o aviso de certificado autoassinado. -
Clique em Experimente agora para revisar e atualizar os metadados de atributos do produto. Ele inicia a autenticação de usuário IMS e o fluxo de autorização do aplicativo.
-
Faça logon com suas credenciais do Adobe ID e forneça o consentimento para permitir que o aplicativo Web WKND-PIM acesse a API do autor do Assets em seu nome.
-
Na rota/página
https://localhost:3001/update-product-attributes
, clique na guia Atributos de ativos do AEM. Na lista suspensa ID do ativo, selecione uma ID do ativo para exibir os metadados do ativo. -
Atualize os metadados do ativo e clique em Atualizar atributos de ativo do AEM para atualizar os metadados do ativo.
Revisar o código do aplicativo
Vamos analisar a estrutura de código de alto nível e os principais pontos de entrada do aplicativo Web WKND-PIM. O aplicativo é desenvolvido usando Node.js + Express.
-
O
app.js
é o principal ponto de entrada do aplicativo. Ele inicializa o aplicativo Express, configura a sessão e monta as rotas. -
A pasta
public
contém os ativos estáticos, como CSS, JavaScript e imagens. O arquivoscript.js
contém o código JavaScript do lado do cliente para interagir com as rotas Expresso/api/getAEMAssetMetadata
e/api/updateAEMAssetMetadata
. -
A pasta
routes
contém as rotas Expressas:index.js
: a rota principal que renderiza a página inicial.update-product-attributes.js
: a rota que renderiza o formulário de atributos do produto com guias também verifica a sessão Expressa para o token de acesso.adobe-ims-auth.js
: a rota que inicia a autenticação de usuário do Adobe IMS e o fluxo de autorização do aplicativo.invoke-aem-apis.js
: a rota que chama as APIs do AEM baseadas em OpenAPI usando o token de acesso específico do usuário.
-
A pasta
views
contém os modelos EJS para renderizar as páginas do HTML. -
A pasta
utils
contém as funções de utilitário. -
A pasta
ssl
contém o certificado autoassinado e os arquivos de chave para executar o proxy HTTP SSL local.
Você pode desenvolver ou integrar o aplicativo web existente com as APIs do Adobe usando outras tecnologias do lado do servidor, como Java, Python ou .NET.
Resumo
Neste tutorial, você aprendeu a chamar APIs do AEM baseadas em OpenAPI no AEM as a Cloud Service a partir de um aplicativo web personalizado usando a autenticação do aplicativo web OAuth. Você analisou os trechos de código-chave usados no aplicativo Web WKND-PIM para entender o fluxo de autenticação do aplicativo Web OAuth.
Você pode usar o tutorial como referência para integrar as APIs do AEM baseadas em OpenAPI aos seus aplicativos Web personalizados, a fim de fornecer fluxos de trabalho eficientes e centrados no usuário.