Authentifizierungssystem
Dieser Leitfaden erklärt, wie Sie das Benutzerauthentifizierungssystem von LibreChat verwenden, das sichere und einfache E-Mail- sowie Social-Logins bietet. Sie erfahren, wie Sie Registrierung, Anmeldung, Passwortzurücksetzung und mehr einrichten.
Allgemein
Für einen schnellen Überblick, siehe das hier bereitgestellte Benutzerhandbuch: Authentication
Hier ist ein Überblick über die allgemeine Konfiguration.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Aktivieren oder deaktivieren Sie NUR die E-Mail-Anmeldung. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | E-Mail-Registrierung für neue Benutzer aktivieren oder deaktivieren. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Erlauben Sie Benutzern, sich mit verschiedenen sozialen Netzwerken bei LibreChat anzumelden. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Aktivieren oder deaktivieren Sie die Registrierung neuer Benutzer über verschiedene soziale Netzwerke. | ALLOW_SOCIAL_REGISTRATION=false |
Hinweis: OpenID und SAML unterstützen nicht die Möglichkeit, nur die Registrierung zu deaktivieren.
Kurztipps:
- Selbst wenn die Registrierung deaktiviert ist, können Sie Benutzer direkt zur Datenbank hinzufügen, indem Sie das unten beschriebene create-user script verwenden.
- Um einen Benutzer zu löschen, können Sie das delete-user Skript verwenden, das ebenfalls unten aufgeführt ist.
Sitzungsablauf und Refresh Token
- Standardwerte: Sitzungsablauf: 15 Minuten, Ablauf des Refresh-Tokens: 7 Tage
- Für weitere Informationen: GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Zeit bis zum Sitzungsablauf. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | Ablaufzeit des Refresh-Tokens. | 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 und Refresh Secret
- Sie sollten neue sichere Werte verwenden. Die angegebenen Beispiele sind 32-Byte-Schlüssel (64 Zeichen in Hexadezimal).
- Verwenden Sie dieses Tool, um schnell welche zu generieren: JWT Keys
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | JWT-Geheimschlüssel. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | JWT-Refresh-Secret-Key. | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
Automatisiertes Moderationssystem (optional)
Das Automated Moderation System ist standardmäßig aktiviert. Es verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichtenversand durchführen, sammeln sie Verstößepunkte an. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und seine IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit, indem es schnelle oder verdächtige Aktivitäten überwacht und sanktioniert.
Um das Mod-System einzurichten, lesen Sie die Einrichtungsanleitung.
Bitte beachten: Wenn Sie möchten, dass dies im Entwicklungsmodus funktioniert, müssen Sie eine Datei namens
.env.developmentim Stammverzeichnis erstellen undDOMAIN_CLIENTaufhttp://localhost:3090oder den Port setzen, der von vite beim Ausführen vonnpm run frontend-devbereitgestellt wird.
Benutzerverwaltungsskripte
Benutzerskript erstellen
Das create-user Skript ermöglicht es Ihnen, Benutzer direkt zur Datenbank hinzuzufügen, selbst wenn die Registrierung deaktiviert ist. So verwenden Sie es:
-
Für die standardmäßige
docker-compose.yml(falls Siedocker compose upverwenden, um die App zu starten):docker compose exec api npm run create-user -
Für die
deploy-compose.yml(falls Sie dem Ubuntu Docker Guide gefolgt sind):docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user" -
Für die lokale Entwicklung (vom Projektstammverzeichnis aus):
npm run create-user
Befolgen Sie die Anweisungen, um die E-Mail-Adresse und das Passwort des neuen Benutzers einzugeben.
Benutzer-Skript löschen
Um einen Benutzer zu löschen, können Sie das delete-user Skript verwenden:
-
Für die standardmäßige
docker-compose.yml(falls Siedocker compose upverwenden, um die App zu starten):docker compose exec api npm run delete-user [email protected] -
Für die
deploy-compose.yml(falls Sie dem Ubuntu Docker Guide gefolgt sind):docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]" -
Für die lokale Entwicklung (vom Projektstammverzeichnis aus):
npm run delete-user [email protected]
Ersetzen Sie [email protected] durch die E-Mail-Adresse des Benutzers, den Sie löschen möchten.
Wie finden Sie diese Anleitung?
Guthaben
Konfigurieren von Token-Guthaben für Benutzer in LibreChat
E-Mail-Einrichtung
Dieser Leitfaden erklärt, wie Sie die sichere E-Mail-Verifizierung bzw. das Zurücksetzen von Passwörtern konfigurieren. Sie können dies so einrichten, dass es mit verschiedenen E-Mail-Diensten funktioniert, einschließlich Gmail, Mailgun und benutzerdefinierten Mail-Servern.