# POST Autenticação - Obtendo token

#### **Introdução**

A rota permite a autenticação de usuários e retorna um token do tipo bearer, que deve ser utilizado nas demais requisições à API para garantir a segurança e a autenticidade do acesso.

<p class="callout warning">Caso o usuário erre a senha 3 vezes, seu acesso será bloqueado. Para desbloqueio, deverá solicitar ao departamento de credenciamento.</p>


---


##### ***Rota***

```css
/Usuario/login
```

##### ***Authorization***

É necessário um token de autorização do tipo **Bearer Token**. O token deve ser fornecido da seguinte forma:

<table border="1" id="bkmrk-token-eyjhbgc..." style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Token</td><td>eyJhbGc...</td></tr></tbody></table>

##### ***Headers Request***

<table border="1" id="bkmrk-accept-application%2Fj" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Accept</td><td>application/json

</td></tr><tr><td>Content-Type</td><td>application/json

</td></tr></tbody></table>

#### **Detalhes da API**

Campos obrigatórios e seus respectivos tipos

---

##### ***Campos***

<table border="1" id="bkmrk-campo-tipo-descri%C3%A7%C3%A3o" style="border-collapse: collapse; width: 100%; height: 181.4px;"><colgroup><col style="width: 21.5682%;"></col><col style="width: 16.8017%;"></col><col style="width: 16.3312%;"></col><col style="width: 45.3943%;"></col></colgroup><thead><tr style="height: 29.6px;"><td style="height: 29.6px;">**Campo**</td><td style="height: 29.6px;">**Tipo**</td><td style="height: 29.6px;">**Obrigatório**</td><td style="height: 29.6px;">**Descrição**</td></tr></thead><tbody><tr style="height: 47.2px;"><td style="height: 47.2px;">`login`  
</td><td style="height: 47.2px;">string</td><td style="height: 47.2px;">Sim</td><td style="height: 47.2px;">Nome de usuário ou identificação única utilizada para autenticação no sistema.</td></tr><tr style="height: 41.4px;"><td style="height: 41.4px;">`senha`  
</td><td style="height: 41.4px;">string</td><td style="height: 41.4px;">Sim</td><td style="height: 41.4px;">Senha de acesso do usuário, utilizada para garantir a segurança durante o processo de autenticação.</td></tr><tr style="height: 63.2px;"><td style="height: 63.2px;">`apiKey`  
</td><td style="height: 63.2px;">string</td><td style="height: 63.2px;">Sim</td><td style="height: 63.2px;">Chave de acesso à API, necessária para autenticar requisições e garantir que o usuário tenha permissão para acessar os recursos da aplicação.</td></tr></tbody></table>

##### ***Campos Opcionais***

<table border="1" id="bkmrk-campo-tipo-descri%C3%A7%C3%A3o-1" style="border-collapse: collapse; width: 100%; height: 59.2px;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><thead><tr style="height: 29.6px;"><td style="height: 29.6px;">**Campo**</td><td style="height: 29.6px;">**Tipo**</td><td style="height: 29.6px;">**Descrição**</td></tr></thead><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">Nenhum</td><td style="height: 29.6px;"> **-**</td><td style="height: 29.6px;">Não existem campos opcionais.</td></tr></tbody></table>



#### **Exemplo de Requisição e Resposta**

---

##### ***Exemplo de Request***

<details id="bkmrk-curl-curl---location"><summary>curl</summary>

```bash
curl --location 'https://app2-crefaz-api-external-stag.azurewebsites.net/api/Usuario/login' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
  "login": "CC00000000",
  "senha": "senha",
  "apiKey": "api-key-0000-0000-0000"
}
'
```

</details>##### ***Body da Requisição***

<details id="bkmrk-body-%7B-%22login%22%3A-%22cc0"><summary>body</summary>

```json
{
  "login": "CC00000000",
  "senha": "senha",
  "apiKey": "api-key-0000-0000-0000"
}
```

</details>##### ***Exemplo de Response***

<details id="bkmrk-json-%7B-%22success%22%3A-tr"><summary>sucesso</summary>

```json
{
  "success": true,
  "data": {
    "userId": 1000,
    "login": "CC00000000",
    "token": "eyJ...",
    "expires": "2024-10-05T05:41:47.2189101Z",
    "refreshToken": null,
    "nome": "NOME DO USUARIO AUTENTICADO",
    "telefonia": null,
    "senhaExpirada": null
  },
  "errors": null
}
```

</details><details id="bkmrk-erro-%7B-%22success%22%3A-fa"><summary>erro</summary>

```json
{
  "success": false,
  "data": null,
  "errors": [
    "ApiKey não corresponde",
    "Usuário não encontrado"
  ]
}
```

</details>##### ***<span class="Text__TextContainer-sc-1kqigik-0 dLPxIq" data-aether-id="aether-text" data-click="" data-testid="aether-text">Headers de Response (7)</span>***

<table border="1" id="bkmrk-type-value-content-t" style="border-collapse: collapse; width: 100%; height: 59.2px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">Content-Type</td><td style="height: 29.6px;">application/json; charset=utf-8

</td></tr></tbody></table>


#### **Exemplo de Resposta (200 OK)**

Caso falhe a autenticação, a resposta conterá uma mensagem de erro indicando o problema encontrado.


#### **Possíveis Erros**

- **401 Unauthorized**: Login, senha ou apiKey incorretos.
- **400 Bad Request**: Algum dos campos obrigatórios está ausente ou com formato inválido.

#### **Tela Referência - CrefazOn**

[![Screenshot_1.png](https://docs.crefaz.dev.br/uploads/images/gallery/2024-10/scaled-1680-/screenshot-1.png)](https://docs.crefaz.dev.br/uploads/images/gallery/2024-10/screenshot-1.png)