Système d'authentification
Ce guide explique comment utiliser le système d'authentification des utilisateurs de LibreChat, qui propose des connexions sécurisées et simples par e-mail et réseaux sociaux. Vous apprendrez à configurer l'inscription, la connexion, la réinitialisation de mot de passe, et plus encore.
Général
Pour un aperçu rapide, consultez le guide de l'utilisateur fourni ici : Authentication
Voici un aperçu de la configuration générale.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Activer ou désactiver UNIQUEMENT la connexion par e-mail. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | Activer ou désactiver l'inscription par e-mail des nouveaux utilisateurs. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Permettre aux utilisateurs de se connecter à LibreChat avec divers réseaux sociaux. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Activer ou désactiver l'inscription de nouveaux utilisateurs via divers réseaux sociaux. | ALLOW_SOCIAL_REGISTRATION=false |
Note : OpenID et SAML ne prennent pas en charge la possibilité de désactiver uniquement l'inscription.
Astuces rapides :
- Même si l'inscription est désactivée, vous pouvez ajouter des utilisateurs directement dans la base de données en utilisant le script create-user détaillé ci-dessous.
- Pour supprimer un utilisateur, vous pouvez utiliser le script delete-user également détaillé ci-dessous.
Expiration de session et jeton de rafraîchissement
- Valeurs par défaut : expiration de la session : 15 minutes, expiration du jeton de rafraîchissement : 7 jours
- Pour plus d'informations : GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Délai d'expiration de la session. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | Délai d'expiration du jeton de rafraîchissement. | REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 |
sequenceDiagram
Client->>Server: Login request with credentials
Server->>Passport: Use authentication strategy (e.g., 'local', 'google', etc.)
Passport-->>Server: User object or false/error
Note over Server: If valid user...
Server->>Server: Generate access and refresh tokens
Server->>Database: Store hashed refresh token
Server-->>Client: Access token and refresh token
Client->>Client: Store access token in HTTP Header and refresh token in HttpOnly cookie
Client->>Server: Request with access token from HTTP Header
Server-->>Client: Requested data
Note over Client,Server: Access token expires
Client->>Server: Request with expired access token
Server-->>Client: Unauthorized
Client->>Server: Request with refresh token from HttpOnly cookie
Server->>Database: Retrieve hashed refresh token
Server->>Server: Compare hash of provided refresh token with stored hash
Note over Server: If hashes match...
Server-->>Client: New access token and refresh token
Client->>Server: Retry request with new access token
Server-->>Client: Requested dataJWT Secret et Refresh Secret
- Vous devriez utiliser de nouvelles valeurs sécurisées. Les exemples fournis sont des clés de 32 octets (64 caractères en hexadécimal).
- Utilisez cet outil pour en générer rapidement : Clés JWT
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | Clé secrète JWT. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | Clé secrète de rafraîchissement JWT. | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
Système de modération automatisé (optionnel)
Le système de modération automatisé est activé par défaut. Il utilise un mécanisme de notation pour suivre les violations des utilisateurs. À mesure que les utilisateurs effectuent des actions telles que des connexions, des inscriptions ou des envois de messages excessifs, ils accumulent des scores de violation. Une fois un seuil défini atteint, l'utilisateur et son adresse IP sont temporairement bannis. Ce système garantit la sécurité de la plateforme en surveillant et en pénalisant les activités rapides ou suspectes.
Pour configurer le système de modération, consultez le guide de configuration.
Veuillez noter : Si vous souhaitez que cela fonctionne en mode développement, vous devrez créer un fichier nommé
.env.developmentdans le répertoire racine et définirDOMAIN_CLIENTsurhttp://localhost:3090ou sur le port fourni par vite lors de l'exécution denpm run frontend-dev
Scripts de gestion des utilisateurs
Créer un script utilisateur
Le script create-user vous permet d'ajouter des utilisateurs directement dans la base de données, même lorsque l'inscription est désactivée. Voici comment l'utiliser :
-
Pour le
docker-compose.ymlpar défaut (si vous utilisezdocker compose uppour démarrer l'application) :docker compose exec api npm run create-user -
Pour le
deploy-compose.yml(si vous avez suivi le Guide Docker Ubuntu) :docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user" -
Pour le développement local (depuis la racine du projet) :
npm run create-user
Suivez les instructions pour saisir l'e-mail et le mot de passe du nouvel utilisateur.
Script de suppression d'utilisateur
Pour supprimer un utilisateur, vous pouvez utiliser le script delete-user :
-
Pour le
docker-compose.ymlpar défaut (si vous utilisezdocker compose uppour démarrer l'application) :docker compose exec api npm run delete-user [email protected] -
Pour le
deploy-compose.yml(si vous avez suivi le Guide Docker Ubuntu) :docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]" -
Pour le développement local (depuis la racine du projet) :
npm run delete-user [email protected]
Remplacez [email protected] par l'adresse e-mail de l'utilisateur que vous souhaitez supprimer.
Que pensez-vous de ce guide ?
Solde
Configurer les soldes de crédits de jetons pour les utilisateurs dans LibreChat
Configuration des e-mails
Ce guide explique comment configurer la vérification sécurisée des e-mails et la réinitialisation de mot de passe. Vous pouvez le configurer pour fonctionner avec divers services de messagerie, notamment Gmail, Mailgun et des serveurs de messagerie personnalisés.