> For the complete documentation index, see [llms.txt](https://coefficy.gitbook.io/coefficy-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coefficy.gitbook.io/coefficy-api/reference/api-reference/identification-api.md).

# Identification api

> Une version plus récente de cette documentation est présente ici : <https://docs.coefficy.com/reference/identification.html>

L'authentification à l'api se fait via des tokens générés avec vos identifiants coefficy.

Les tokens sont au format JSON Web Token.

Chaque token généré est associé à un refreshToken, qui permet de régénérer un token sans avoir a renvoyer ses identifiants quand celui-ci n'est plus valide.

Quand le token est régénérer il est remplacé par le nouveau.

Pour des raisons techniques, et seulement pendant un temps, les token et refreshToken ont une durée de vie de 1 an.

Dans le futur la durée de vie du token va être diminuée, le refreshToken quant à lui restera valide 1 an.

## Identification API

## Générer une clé api

<mark style="color:green;">`POST`</mark> `https://api.campaign.coefficy.com/v1/login`

Se connecter à l'api et générer une clé api pour l'utilisateur, les identifiants sont les mêmes que sur Coefficy

#### Request Body

| Name                                       | Type   | Description                    |
| ------------------------------------------ | ------ | ------------------------------ |
| username<mark style="color:red;">\*</mark> |        | l'identifiant de l'utilisateur |
| password<mark style="color:red;">\*</mark> | String | Mot de passe de l'utilisateur  |

{% tabs %}
{% tab title="200: OK clé créée avec succès" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": true,
    "token": string,
    "tokenExpirationDate": datetime,
    "refreshToken": string,
    "refreshTokenExpirationDate": datetime
}
</code></pre>

{% endtab %}

{% tab title="400: Bad Request Champs manquants" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": false
}
</code></pre>

{% endtab %}

{% tab title="401: Unauthorized Identifiants incorrects" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": false
}
</code></pre>

{% endtab %}

{% tab title="403: Forbidden Identification non autorisée" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": false
}
</code></pre>

{% endtab %}
{% endtabs %}

## Régénérer la clé API via sa clé de rafraîchissement

<mark style="color:green;">`POST`</mark> `https://api.campaign.coefficy.com/v1/refreshToken`

Chaque clé créée a une durée de vie, on peut la rafraîchir via sa clé de rafraîchissement.

#### Request Body

| Name                                           | Type   | Description |
| ---------------------------------------------- | ------ | ----------- |
| refreshToken<mark style="color:red;">\*</mark> | String |             |

{% tabs %}
{% tab title="200: OK clé régénérée" %}

```json
{
    "success": true,
    "parameters": {
        "refreshToken": string
    },
    "token": string,
    "tokenExpirationDate": datetime,
    "refreshToken": string,
    "refreshTokenExpirationDate": datetime
}
```

{% endtab %}

{% tab title="400: Bad Request Champs manquants" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": false
}
</code></pre>

{% endtab %}

{% tab title="403: Forbidden Identification non autorisée" %}

```json
{
    "success": false
}
```

{% endtab %}

{% tab title="401: Unauthorized Identifiants incorrects" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "success": false
}
</code></pre>

{% endtab %}
{% endtabs %}

## Supprimer une clé api

<mark style="color:green;">`POST`</mark> `https://api.campaign.coefficy.com/v1/logout`

Supprimer une clé supprime aussi sa clé de rafraîchissement

#### Headers

| Name                                             | Type   | Description     |
| ------------------------------------------------ | ------ | --------------- |
| x-access-token<mark style="color:red;">\*</mark> | String | clé d'accès api |

{% tabs %}
{% tab title="200: OK Clé supprimée avec succès" %}

```json
{
    "success": true,
    "parameters": {
        "token": string
    },
    "message":string
}
```

{% endtab %}

{% tab title="401: Unauthorized Clé invalide" %}

```json
{
    "success": false
}
```

{% endtab %}
{% endtabs %}
