# Authentification

La bibliothèque `huggingface_hub` permet aux utilisateurs de gérer l’authentification vers le Hub de manière programmatique. Cela inclut la connexion, la déconnexion, le changement entre jetons et l’affichage des jetons disponibles.

Pour plus de détails sur l'authentification, consultez [cette section](../quick-start#authentication).

## login[[huggingface_hub.login]]

#### huggingface_hub.login[[huggingface_hub.login]]

```python
huggingface_hub.login(token: str | None = None, add_to_git_credential: bool = False, skip_if_logged_in: bool = True)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L57)

**Paramètres :**

token (`str`, *facultatif*) : Jeton d'accès utilisateur à générer depuis https://huggingface.co/settings/token.

add_to_git_credential (`bool`, par défaut `False`) : Si `True`, le jeton sera défini comme identifiant git. Si aucun assistant d'identifiants git n'est configuré, un avertissement sera affiché à l'utilisateur. Utilisé uniquement lorsque `token` est fourni ; ignoré par le flux basé sur le navigateur.

skip_if_logged_in (`bool`, par défaut `True`) : Si `True`, ne demande pas de jeton si l'utilisateur est déjà connecté. Définissez sur `False` pour forcer la reconnexion. En CLI, utilisez `--force` à la place.

**Exceptions levées :** ``ValueError`` ou `DeviceCodeError`

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si un jeton d'organisation est transmis. Seuls les jetons de compte personnel sont valides pour la connexion.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si le jeton est invalide.
- `DeviceCodeError` -- Si la connexion via le navigateur échoue (autorisation refusée, code expiré, ...).

Connectez la machine pour accéder au Hub.

Le `token` est persisté dans le cache et défini comme une authentification git. Une fois terminé, la machine est connectée et le jeton d’accès sera disponible dans tous les composants de `huggingface_hub`. Si `token` n’est pas fourni, un flux OAuth basé sur le navigateur est utilisé pour l’authentification : ouvrir une URL, saisir un code court, puis le jeton est récupéré et enregistré. Dans un terminal, vous pouvez également choisir de coller un jeton d’accès existant à la place.

Pour se connecter en dehors d'un script, on peut également utiliser `hf auth login`, une commande CLI qui encapsule [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login).

> [!TIP]
> Lorsque le jeton n’est pas transmis, [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login) détecte automatiquement si le script s’exécute dans un notebook ou non. Toutefois, cette détection peut s’avérer imprécise en raison de la variété des notebooks existants aujourd’hui. Dans ce cas, vous pouvez toujours forcer l’interface utilisateur en utilisant [notebook_login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.notebook_login) ou [interpreter_login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.interpreter_login).

## interpreter_login[[huggingface_hub.interpreter_login]]

#### huggingface_hub.interpreter_login[[huggingface_hub.interpreter_login]]

```python
huggingface_hub.interpreter_login(skip_if_logged_in: bool = True)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L284)

**Paramètres :**

skip_if_logged_in (`bool`, par défaut `True`) : Si `True`, ne demande pas de jeton si l'utilisateur est déjà connecté. Définissez sur `False` pour forcer la reconnexion. En CLI, utilisez `--force` à la place.

Affiche une invite pour se connecter au site Web HF et stocker le jeton.

Cela équivaut à [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login) sans passer de jeton lorsqu’il n’est pas exécuté dans un notebook. [interpreter_login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.interpreter_login) est utile si vous souhaitez forcer l’utilisation du prompt du terminal plutôt que du flux notebook.

Pour plus de détails, voir [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login).

## notebook_login[[huggingface_hub.notebook_login]]

#### huggingface_hub.notebook_login[[huggingface_hub.notebook_login]]

```python
huggingface_hub.notebook_login(skip_if_logged_in: bool = True)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L335)

**Paramètres :**

skip_if_logged_in (`bool`, par défaut `True`) : Si `True`, ne demande pas de jeton si l'utilisateur est déjà connecté. Définissez sur `False` pour forcer la reconnexion. En CLI, utilisez `--force` à la place.

Affiche une invite pour se connecter au site Web HF et stocker le jeton.

Cela équivaut à [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login) sans passer de jeton lorsqu’il est exécuté dans un notebook. [notebook_login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.notebook_login) est utile si vous souhaitez forcer l’utilisation du flux notebook plutôt qu’un prompt dans le terminal.

Pour plus de détails, voir [login()](/docs/huggingface_hub/v2.4.0/fr/package_reference/authentication#huggingface_hub.login).

## Se déconnecter[[huggingface_hub.logout]]

#### huggingface_hub.logout[[huggingface_hub.logout]]

```python
huggingface_hub.logout(token_name: str | None = None)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L120)

**Paramètres :**

token_name (`str`, *facultatif*) : Nom du jeton d'accès pour lequel se déconnecter. Si `None`, se déconnecte de tous les jetons d'accès enregistrés.

**Levée :** ``ValueError``

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si le nom du jeton d'accès n'est pas trouvé.

Déconnectez la machine du Hub.

Le jeton est supprimé de la machine et retiré des identifiants git.

## auth_switch[[huggingface_hub.auth_switch]]

#### huggingface_hub.auth_switch[[huggingface_hub.auth_switch]]

```python
huggingface_hub.auth_switch(token_name: str, add_to_git_credential: bool = False)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L162)

**Paramètres :**

token_name (`str`) : Nom du jeton d'accès vers lequel basculer.

add_to_git_credential (`bool`, par défaut `False`) : Si `True`, le jeton sera défini comme identifiant git. Si aucun assistant d’identifiants git n’est configuré, un avertissement sera affiché à l’utilisateur. Si `token` est `None`, la valeur de `add_to_git_credential` est ignorée et l’utilisateur final sera à nouveau invité à fournir une valeur.

**Levée :** ``ValueError``

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Si le nom du jeton d'accès n'est pas trouvé.

Passer à un jeton d'accès différent.

## auth_list[[huggingface_hub.auth_list]]

#### huggingface_hub.auth_list[[huggingface_hub.auth_list]]

```python
huggingface_hub.auth_list()
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L191)

Liste tous les jetons d'accès stockés.

