Índice
Índice |
---|
outline | true |
---|
exclude | .*ndice |
---|
style | none |
---|
|
Descrição
...
O exemplo disponibilizado nesta página demonstra como solicitar o token de acesso OAuth e realizar uma chamada à API do fluig 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 passsos passos abaixo usam o Swagger como referência para explanar esse procedimento.
Deck of Cards |
---|
|
Card |
---|
|
|
Card |
---|
|
- Expandir o serviço oauth2.
- Acessar o endpoint GET /rest/v2/oauth2/clients/{clientId}/assertion.
|
Card |
---|
|
- 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.
|
Card |
---|
|
- 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).
|
Card |
---|
|
- Para utilizar todos os endpoints da API do fluig 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 fluig Identity.
Nota |
---|
O access_token obtido a partir da autorização na API deve ser enviado no header de todas as requisições. |
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
// 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);
|
HTML |
---|
<!-- Hotjar Tracking Code for http://tdn.totvs.com/display/fb -->
<script>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:1280165,hjsv:6};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
</script> |