Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Authentifizierungssystem

Dieser Leitfaden erklärt die Verwendung des Benutzerauthentifizierungssystems von LibreChat, 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.

KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanAktivieren oder deaktivieren Sie NUR die E-Mail-Anmeldung.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanE-Mail-Registrierung für neue Benutzer aktivieren oder deaktivieren.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanErmöglicht Benutzern die Verbindung zu LibreChat über verschiedene soziale Netzwerke.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanAktivieren 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.
BenutzerregistrierungsbildschirmBenutzerregistrierungsbildschirm

Sitzungsablauf und Refresh Token

KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Zeit bis zum Ablauf der Sitzung.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (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 data

JWT 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
KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT-Geheimschlüssel.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (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.development im Stammverzeichnis erstellen und DOMAIN_CLIENT auf http://localhost:3090 oder den Port setzen, der von vite beim Ausführen von npm run frontend-dev bereitgestellt 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:

  1. Für die standardmäßige docker-compose.yml (falls Sie docker compose up verwenden, um die App zu starten):

    docker compose exec api npm run create-user
  2. 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"
  3. 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:

  1. Für die standardmäßige docker-compose.yml (falls Sie docker compose up verwenden, um die App zu starten):

    docker compose exec api npm run delete-user [email protected]
  2. 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]"
  3. 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?