Índice
Descrição
O exemplo disponibilizado nesta página demonstra como solicitar o token de acesso OAuth e realizar uma chamada à API do Identity via JavaScript (AJAX).
Autorização
Para utilizar os endpoints da API com AJAX, primeiramente é necessário solicitar autorização para obter um token de acesso (access token). Os passos abaixo usam o Swagger como referência para explanar esse procedimento.
- Acessar a URL da API: https://[contexto].fluigidentity.com/rest/swagger-ui/index.html.
- O [contexto] é o subdomínio da empresa no Identity. Por exemplo, se a URL de acesso da empresa no Identity for https://minhaempresa.fluigidentity.com. o contexto é "minhaempresa".
Caso seja utilizado o ambiente de homologação, a URL da API será https://[contexto].customerfi.com/rest/swagger-ui/index.html.
- Expandir o serviço oauth2.
- Acessar o endpoint GET /rest/v2/oauth2/clients/{clientId}/assertion.
- Preencher o parâmetro clientId com o ID do Cliente da empresa.
Para obter o clientId, acessar o menu Configuração → aba Segurança → REST API v2 → ID do Cliente.
- Ao acionar Try it out!, será gerado o Client Assertion no Responde Body.
- O valor do Client Assertion deve ser copiado para utilização no próximo passo.
- Acessar o endpoint POST /rest/v2/oauth2/auth.
- Preencher o valor do Client Assertion obtido no passo anterior no campo assertion.
- Acionar Try it out! para obter o token de acesso (access token).
- Para utilizar todos os endpoints da API do Identity, copiar o access token para campo api_key no canto superior direito da página e acionar Explore.
Exemplo
O exemplo de código-fonte a seguir demonstra como realizar o procedimento de autorização e obtenção do access token via AJAX, bem como a chamada de um endpoint para recuperar os dados de uma empresa (contexto) através da API do Identity.
O access_token obtido a partir da autorização na API deve ser enviado no header de todas as requisições.
// Exemplo de código para obter as informações de uma empresa por AJAX. var clientId = '<CLIENT_ID>'; // Substituir '<CLIENT_ID>' pelo clientId da empresa var companyId ='<COMPANY_ID>'; // Substituir '<COMPANY_ID>' pelo companyId da empresa var domainUrl = 'https://<CONTEXT>.fluigidentity.com/'; /* Substituir '<CONTEXT>' pelo contexto da empresa */ var apiUrl = domainUrl + 'rest/v2/'; // Get client assertion function getClientAssertion(clientId) { $.ajax({ url:apiUrl + 'oauth2/clients/' + clientId + '/assertion', crossDomain:true // se necessário cross domain }) .done(function(data){ getAccessToken(data); }) .fail(function(error){ console.log(error); }); } // Grant a new refresh token function getAccessToken(assertion) { var data = { 'grant_type':'urn:ietf:params:oauth:grant-type:jwt-bearer', 'assertion':assertion }; $.ajax({ url:apiUrl + 'oauth2/auth', crossDomain:true, // se necessário cross domain data:data, type:'POST' }) .done(function(data){ getCompany(data.access_token,companyId) }) .fail(function(error){ console.log(error); }); } // Get a company function getCompany(authorization, companyId) { $.ajax({ url:apiUrl + 'companies/' + companyId, crossDomain:true, // se necessário cross domain headers:{ 'Authorization':authorization } }) .done(function(data){ console.log(data); }) .fail(function(error){ console.log(error); }); } getClientAssertion(clientId);