Skip to main content

Grant Types Disponíveis

Configurar autenticação: obtendo uma sessão

A API HelloCloud requer que um cliente tenha uma sessão ativa para consumir a API. As sessões são adquiridas por meio de autenticação no servidor OAuth 2, usando um dos tipos de concessão disponíveis.

Configurar tipos de concessão

Antes de consumir a API, você deve primeiro configurar o HelloCloud para conceder acesso a um cliente. HelloCloud 7.10 oferece um painel administrativo, através do qual você pode adicionar clientes e revogar tokens. Para configurar os tipos de concessão, selecione o painel de administração e, em seguida, selecione Clientes e Tokens OAuth2:

 

Captura de Tela 2024-04-19 às 10.56.22.png

Grant Types Disponíveis

Versão HelloCloud Grant Types Disponíveis

7.10.0

Concessão de senha

7.10.2+

Concessão de senha, concessão de credenciais do cliente


oauth_menu.png

Concessão de credenciais de cliente

Uma concessão de credenciais de cliente é o mais simples de todos os tipos de concessão; essa concessão é usada para autenticar uma máquina ou serviço. Selecione o novo cliente de credenciais do cliente:

new_client_oauth.png

Comece a configurar a concessão:

client_oauth.png


Campo Descrição

Nome

Isso facilita a identificação do cliente.

Alterar segredo

Define o  client_secret  que é postado no servidor durante a autenticação.

É confidencial

Um cliente confidencial é um aplicativo capaz de manter a senha de um cliente confidencial para o mundo.

Usuário associado

Limita o acesso do cliente ao CRM, associando o cliente aos privilégios de segurança de um usuário.


O 'segredo' será criptografado quando salvo e não estará acessível posteriormente. O 'id' é criado pelo HelloCloud e ficará visível assim que o cliente for salvo.

client_oauth_detail.png

Autenticação com credenciais do cliente 

POST /Api/access_token

Parâmetros obrigatórios 

parâmetro valor

grant_type

client_credentials

client_id

ExemploNomeCliente

client_secret

ExemploSecretPassword

Solicitação de exemplo (PHP):
$ch = curl_init();
$header = array(
    'Content-type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
 );
$postStr = json_encode(array(
    'grant_type' => 'client_credentials',
    'client_id' => '3D7f3fda97-d8e2-b9ad-eb89-5a2fe9b07650',
    'client_secret' => 'client_secret',
));
$url = 'https://path-to-instance/Api/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$output = curl_exec($ch);
Exemplo de resposta:
{
   "token_type":"Bearer",
   "expires_in":3600,
   "access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdkOTEyODNhMjc1NDdkNDRlMzNmOTc5ZjVmMGRkYzQwNzg1ZGY5NGFhMWI5MDVlZGNmMzg3NWIxYjJkZDMzNDljZWEyNjZhMTQ2OTE5OWIzIn0.eyJhdWQiOiJzdWl0ZWNybV9jbGllbnQiLCJqdGkiOiI3ZDkxMjgzYTI3NTQ3ZDQ0ZTMzZjk3OWY1ZjBkZGM0MDc4NWRmOTRhYTFiOTA1ZWRjZjM4NzViMWIyZGQzMzQ5Y2VhMjY2YTE0NjkxOTliMyIsImlhdCI6MTUxODE5NTEwMiwibmJmIjoxNTE4MTk1MTAyLCJleHAiOjE1MTgxOTg3MDIsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.EVGuRisoMxSIZut3IWtgOYISw8lEFSZgCWYCwseLEfOuPJ8lRMYL4OZxhu9gxJoGF0nj3yc6SYDPxovrsoj8bMoX38h4krMMOHFQLoizU0k2wAceOjZG1tWKPhID7KPT4TwoCXbb7MqAsYtVPExH4li7gSphJ8wvcWbFdS5em89Ndtwqq3faFtIq6bv1R4t0x98HHuT7sweHUJU40K9WQjbAfIOk8f5Y6T2wassN2wMCBB8CC6eUxLi14n2D6khHvkYvtPbXLHpXSHZWvEhqhvjAeSR5MmMrAth9WDSWUx7alO-ppsZpi8U7-g9Be5p6MRatc25voyTI2iTYbx02FQ",
}
token_type o valor Bearer token

expires_in

um número inteiro que representa o TTL do token de acesso

access_token

um  JWT  assinado com a chave privada do servidor de autorização. É necessário incluir isso nos cabeçalhos HTTP, cada vez que você fizer uma solicitação à API


Você pode armazenar o token ao portador em um banco de dados e usá-lo em suas solicitações assim:


Example
$header = array(
   'Content-type: application/vnd.api+json',
   'Accept: application/vnd.api+json',
   'Authorization: Bearer ' . $your_saved_access_token
);

Concessão de senha 

Uma concessão de senha é usada para permitir que os usuários façam login no HelloCloud com um nome de usuário e uma senha. Selecione a nova senha do cliente:

oauth_password.png

Comece a configurar a concessão:

oauth_password_edit.png


Nome

Isso facilita a identificação do cliente.

Alterar segredo

Define o  client_secret  que é postado no servidor durante a autenticação.

É confidencial

Um cliente confidencial é um aplicativo capaz de manter a senha de um cliente confidencial para o mundo.


O 'segredo' será criptografado quando salvo e não estará acessível posteriormente. O 'id' é criado pelo HelloCloud e ficará visível assim que o cliente for salvo.


Autenticação com concessão de senha 

POST /Api/access_token

Parâmetros obrigatórios 

parâmetro valor

grant_type

password

client_id

ExemploNomeCliente

client_secret

ExemploSecretPassword

username

admin

password

segredo


Altere os valores em negrito para corresponder aos detalhes de autenticação escolhidos.


Solicitação de exemplo (PHP):
$ch = curl_init();
$header = array(
    'Content-type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
 );
$postStr = json_encode(array(
    'grant_type' => 'password',
    'client_id' => '3D7f3fda97-d8e2-b9ad-eb89-5a2fe9b07650',
    'client_secret' => 'client_secret',
    'username' => 'admin',
    'password' => 'admin',
));
$url = 'https://path-to-instance/Api/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$output = curl_exec($ch);
Exemplo de resposta:
{
   "token_type":"Bearer",
   "expires_in":3600,
   "access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdkOTEyODNhMjc1NDdkNDRlMzNmOTc5ZjVmMGRkYzQwNzg1ZGY5NGFhMWI5MDVlZGNmMzg3NWIxYjJkZDMzNDljZWEyNjZhMTQ2OTE5OWIzIn0.eyJhdWQiOiJzdWl0ZWNybV9jbGllbnQiLCJqdGkiOiI3ZDkxMjgzYTI3NTQ3ZDQ0ZTMzZjk3OWY1ZjBkZGM0MDc4NWRmOTRhYTFiOTA1ZWRjZjM4NzViMWIyZGQzMzQ5Y2VhMjY2YTE0NjkxOTliMyIsImlhdCI6MTUxODE5NTEwMiwibmJmIjoxNTE4MTk1MTAyLCJleHAiOjE1MTgxOTg3MDIsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.EVGuRisoMxSIZut3IWtgOYISw8lEFSZgCWYCwseLEfOuPJ8lRMYL4OZxhu9gxJoGF0nj3yc6SYDPxovrsoj8bMoX38h4krMMOHFQLoizU0k2wAceOjZG1tWKPhID7KPT4TwoCXbb7MqAsYtVPExH4li7gSphJ8wvcWbFdS5em89Ndtwqq3faFtIq6bv1R4t0x98HHuT7sweHUJU40K9WQjbAfIOk8f5Y6T2wassN2wMCBB8CC6eUxLi14n2D6khHvkYvtPbXLHpXSHZWvEhqhvjAeSR5MmMrAth9WDSWUx7alO-ppsZpi8U7-g9Be5p6MRatc25voyTI2iTYbx02FQ",
   "refresh_token":"def50200d2fb757e4c01c333e96c827712dfd8f3e2c797db3e4e42734c8b4e7cba88a2dd8a9ce607358d634a51cadd7fa980d5acd692ab2c7a7da1d7a7f8246b22faf151dc11a758f9d8ea0b9aa3553f3cfd3751a927399ab964f219d086d36151d0f39c93aef4a846287e8467acea3dfde0bd2ac055ea7825dfb75aa5b8a084752de6d3976438631c3e539156a26bc10d0b7f057c092fce354bb10ff7ac2ab5fe6fd7af3ec7fa2599ec0f1e581837a6ca2441a80c01d997dac298e1f74573ac900dd4547d7a2a2807e9fb25438486c38f25be55d19cb8d72634d77c0a8dfaec80901c01745579d0f3822c717df21403440473c86277dc5590ce18acdb1222c1b95b516f3554c8b59255446bc15b457fdc17d5dcc0f06f7b2252581c810ca72b51618f820dbb2f414ea147add2658f8fbd5df20820843f98c22252dcffe127e6adb4a4cbe89ab0340f7ebe8d8177ef382569e2aa4a54d434adb797c5337bfdfffe27bd8d5cf4714054d4aef2372472ebb4"
}
token_type o valor Bearer token

expires_in

um número inteiro que representa o TTL do token de acesso

access_token

um  JWT  assinado com a chave privada do servidor de autorização. É necessário incluir isso nos cabeçalhos HTTP, cada vez que você fizer uma solicitação à API

refresh_token

uma carga criptografada que pode ser usada para atualizar o token de acesso quando ele expirar.


Você pode armazenar o token ao portador em um banco de dados e usá-lo em suas solicitações assim:


Exemplo
$header = array(
   'Content-type: application/vnd.api+json',
   'Accept: application/vnd.api+json',
   'Authorization: Bearer ' . $your_saved_access_token
);