> For the complete documentation index, see [llms.txt](https://kb.stoque.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.stoque.com.br/zeev/apis/all/tokens.md).

# Tokens / Segurança

## Como obter os dados e o token temporário da pessoa autenticada na API?

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Enviar requisição:** Enviar a requisição para o endpoint [#api-2-tokens](#api-2-tokens "mention");

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/tokens" method="get" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de  requisição para obter os dados e o token temporário do usuário autenticado

{% tabs %}
{% tab title="Node.js" %}

```javascript
const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const requestOptions = {
  method: "GET",
  headers: myHeaders
};

try {
  const response = await fetch("https://seu_endereco.do.zeev/api/2/tokens", requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

## Como obter token temporário de autenticação com usuário e senha utilizando API?

1. **Obtenha login de usuário da pessoa;**
2. **Obtenha o password (senha) da pessoa;**
3. **Envie a requisição:** Utilize o endpoint [#api-2-tokens-1](#api-2-tokens-1 "mention") para enviar a requisição. Lembre-se de trocar seu\_endereco.do.zeev pelo endereço que você utiliza para acessar o Zeev;

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/tokens" method="post" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de requisição para obter obter token temporário de autenticação&#x20;

{% tabs %}
{% tab title="Node.js" %}

```javascript
const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const raw = JSON.stringify({
  "login": "jhonny.madson",
  "password": "M1nh4S3nh4-D0Z33v"
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw
};

try {
  const response = await fetch("https://seu_endereco.do.zeev/api/2/tokens", requestOptions);
  const result = await response.json();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

## Como personificar e obter token temporário de outra pessoa utilizando API?

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Obtenha o userId ou o username:** Obtenha o código identificador ou o login do usuário que deseja assumir. Podem ser obtidos na página Acesso > Pessoas ou através de consultas de API como descrito em [Listar pessoas](/zeev/apis/all/access/people/list.md);
3. **Envie a requisição para:**
   1. [#api-2-tokens-impersonate-userid](#api-2-tokens-impersonate-userid "mention") se desejar utilizar o código identificador da pessoa;
   2. [#api-2-tokens-impersonate-username](#api-2-tokens-impersonate-username "mention") se deseja utilizar o login de usuário da pessoa;

Lembre-se de substuir seu\_endereco.do.zeev pelo endereço que você utiliza para acessar o Zeev.

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/tokens/impersonate/{userid}" method="get" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/tokens/impersonate/{username}" method="get" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplos de como personificar e obter o token temporário de outro usuário

{% tabs %}
{% tab title="Node.js (utilizando userId)" %}

```javascript
let userId = 753;

const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const requestOptions = {
  method: "GET",
  headers: myHeaders
};

try {
  const response = await fetch(`https://seu_endereco.do.zeev/api/2/tokens/impersonate/${userid}` requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}

{% tab title="Node.js (utilizando username)" %}

```javascript
let userName = 753;

const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const requestOptions = {
  method: "GET",
  headers: myHeaders
};

try {
  const response = await fetch(`https://seu_endereco.do.zeev/api/2/tokens/impersonate/${userName}` requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

**Links relacionados**:

* [O que é preciso para fazer integrações do Zeev para outros sistemas?](/zeev/integracoes/o-que-e-preciso-para-fazer-integracoes.md)
* [Como autenticar nas APIs do Zeev](/zeev/apis/como-utilizar-as-apis-do-zeev/como-gerar-tokens-para-autenticar-nas-apis.md)
* [Como controlar o volume máximo de requisições à APIs](/zeev/apis/como-utilizar-as-apis-do-zeev/como-controlar-o-volume-maximo-de-requisicoes-a-apis.md)
* [Como acessar o Swagger / OpenAPI](/zeev/apis/como-utilizar-as-apis-do-zeev/como-acessar-o-swagger-openapi.md)
