# Authentification

> Le jeton Bearer, ses portées, et ce qu'il ouvre.

## L'en-tête

```http
Authorization: Bearer ark_xxxxxxxxxxxxxxxxxxxx
```

Le jeton se crée depuis l'espace client, onglet **Clés SSH & API** — voir
[Créer un jeton](/commencer/jetons). Il commence toujours par `ark_`.

## Les deux portées

| Portée | Ce qu'elle ouvre |
| --- | --- |
| `FULL` | Tout ce que fait l'espace client : `/api/resources/*`, `/api/projects/*`, `/api/wallet`, et le registre. |
| `REGISTRY` | Seulement `/api/apps/*` et le registre d'images. |

Un jeton `REGISTRY` présenté sur une route de service reçoit un `403` :

```json
{
  "statusCode": 403,
  "message": "Ce jeton ne sert qu'au registre. Crée un jeton complet pour piloter tes services."
}
```

## Vérifier un jeton

```bash
curl https://api.arkya.gg/api/apps/whoami \
  -H "Authorization: Bearer ark_xxxxxxxxxxxx"
```

```json
{ "email": "toi@exemple.fr" }
```

Cette route accepte les deux portées : c'est celle qu'emploie `ark login`.

## Ce que le jeton ne fait pas

Il n'ouvre pas les routes d'administration, il ne change pas ton mot de passe, il ne
crée pas d'autres jetons. Ces gestes demandent une vraie session, depuis l'espace
client.

## Révocation et expiration

Un jeton révoqué ou expiré donne un `401` dès l'appel suivant :

```json
{ "statusCode": 401, "message": "Jeton refusé." }
```

<Warning>
  Un jeton `FULL` vaut ton mot de passe : il pilote et supprime tes services. Range-le
  comme un secret, et donne-lui une expiration quand tu peux.
</Warning>
