# Como realizar login no Cerberus

Como realizar login no Cerberus

# Realizando Login no Cerberus

Neste tutorial vamos aprender o seguinte:

1. Como realizar uma requisição para efetuar login com uma aplicação client no Cerberus;
2. Como testar se a requisição foi aceita e retornou as informações corretamente;
3. Como realizar login com um usuário (servidor tce);
4. Como usar o access\_token retornado para efetuar requisições para a api;

#### Obtendo um token para acessar a API.

##### Enviando a requisição para fazer o login com a aplicação client

Exemplo de como realizar a requisição.

1. Para obter o token é preciso enviar uma requisição do tipo POST para o endpoint [http://localhost:9999/oauth/token](http://localhost:9999/oauth/token), onde será necessário enviar o **Authorization** do tipo Basic Auth, usando o Username e o Password. O Username é o nome do client (por exemplo: **meuApp**). O Password é a Secret, e será preciso definir um header **Content-Type=application/x-www-form-urlencoded** e como **Body** definimos grant\_type=client\_credentials.  
    ##### Exemplo de requisição de uma aplicação client usando o postman.
    
    <div>  
    </div>
2. **Exemplo de como deve ser enviado o Authorization**  
    **[![exemplo_authorization.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-authorization.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-authorization.png)**
3. **Exemplo de como deve ser enviado o Body**  
      
    <span class="confluence-embedded-file-wrapper confluence-embedded-manual-size">[![exemplo_req_body.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-req-body.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-req-body.png)</span>
4. **Se tudo der certo o Cerberus irá retornar o access\_token da aplicação client.**  
      
    <span class="confluence-embedded-file-wrapper confluence-embedded-manual-size">[![exemplo_response_access_token.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-response-access-token.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-response-access-token.png)</span>

##### Para decodificar o access token pode ser usado o site jwt.io.

https://jwt.io/

<span class="confluence-embedded-file-wrapper confluence-embedded-manual-size">[![exemplo_decode_token_jwt.io.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-decode-token-jwt-io.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-decode-token-jwt-io.png)</span>

##### Efetuar login na API com usuário (servidor tce).

Para efetuar o login com um servidor do tce é preciso enviar uma requisição do tipo POST para o endpoint de login do Cerberus, por exemplo: [http://localhost:9999/login](http://localhost:9999/login) definir o tipo como **x-www-form-urlencoded** com os seguintes parâmetros: **sistema**, **login**, **password**, **tipoUsuario** e **clientId**;

1. **sistema -** id e nome do sistema cliente que o usuário deseja realizar o login, exemplo: **17:diligencia**;
2. **login** - login de rede do servidor tce;
3. **password** - mesma senha do usuário de rede;
4. **tipoUsuario - s**erá informado o valor **1** que indica que é um servidor tce;
5. **clienteId** - da aplicação client, exemplo: diligencia;  
      
    ##### Exemplo de requisição de como efetuar login como um servidor do tce usando o postman.
    
      
    [![exemplo_req_usando_postman.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-req-usando-postman.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-req-usando-postman.png)
6. Se tudo deu certo você será redirecionado para aplicação a qual deseja acessar e receberá um access\_token;

##### Realizando uma requisição para um endpoint da api.

Depois que o usuário conseguiu efetuar com sucesso o login ele está liberado para fazer requisições;

Para fazer uma requisição para API será necessário informar um endpoint, por exemplo: [http://localhost:9005/servidor/](http://localhost:9005/servidor/9680)id\_servidor e no header informar um **Authorization** do tipo Bearer token.

Observação.: Esse id do servidor foi obtido ao decodificar o token. Foi necessário passar o id do servidor apenas para testar esse endpoint;

1. **Exemplo de como deve ser enviado a requisição para consumir um serviço da API**  
      
    Exemplo de como consultar um servidor pelo seu id  
    **<span class="confluence-embedded-file-wrapper confluence-embedded-manual-size">[![exemplo_header_enviado.png](https://docs.tce.pb/uploads/images/gallery/2024-02/scaled-1680-/exemplo-header-enviado.png)](https://docs.tce.pb/uploads/images/gallery/2024-02/exemplo-header-enviado.png)</span>**
2. **Se ocorreu tudo corretamente será retornado o que foi consultado;**