Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack ๐ŸŽ‰ Learn more
LibreChat

Authenticatiesysteem

Deze handleiding legt uit hoe je het gebruikersauthenticatiesysteem van LibreChat gebruikt, dat veilige en eenvoudige e-mail- en sociale aanmeldingen biedt. Je leert hoe je aanmelden, inloggen, wachtwoordherstel en meer instelt.

Algemeen

Voor een snel overzicht, raadpleeg de gebruikershandleiding die hier wordt verstrekt: Authentication

Hier is een overzicht van de algemene configuratie.

KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanSchakel ALLEEN e-mail login in of uit.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanSchakel e-mailregistratie voor nieuwe gebruikers in of uit.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanSta gebruikers toe om verbinding te maken met LibreChat via verschillende sociale netwerken.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanSchakel registratie van nieuwe gebruikers via verschillende sociale netwerken in of uit.ALLOW_SOCIAL_REGISTRATION=false

Let op: OpenID en SAML ondersteunen niet de mogelijkheid om alleen registratie uit te schakelen.

Snelle tips:

  • Zelfs als registratie is uitgeschakeld, kun je gebruikers direct toevoegen aan de database met behulp van het create-user script dat hieronder wordt beschreven.
  • Om een gebruiker te verwijderen, kun je het delete-user script gebruiken, dat hieronder ook in detail wordt beschreven.
Scherm voor gebruikersregistratieScherm voor gebruikersregistratie

Sessieverloop en Refresh Token

KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Sessie-verlooptijd.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Verlooptijd van het refresh token.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 en Refresh Secret

  • Je moet nieuwe veilige waarden gebruiken. De gegeven voorbeelden zijn 32-byte sleutels (64 tekens in hex).
    • Gebruik deze tool om er snel een paar te genereren: JWT Keys
KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT geheime sleutel.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)JWT refresh secret key.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

Geautomatiseerd moderatiesysteem (optioneel)

Het Automated Moderation System is standaard ingeschakeld. Het maakt gebruik van een scoresysteem om gebruikersovertredingen bij te houden. Wanneer gebruikers acties uitvoeren zoals overmatig inloggen, registreren of berichten sturen, verzamelen zij overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.

Om het mod-systeem in te stellen, bekijk de installatiehandleiding.

Let op: Als je wilt dat dit werkt in de development-modus, moet je een bestand genaamd .env.development aanmaken in de hoofdmap en DOMAIN_CLIENT instellen op http://localhost:3090 of de poort die door vite wordt verstrekt bij het uitvoeren van npm run frontend-dev

Gebruikersbeheerscripts

Gebruikersscript aanmaken

Het create-user script stelt je in staat om gebruikers direct aan de database toe te voegen, zelfs wanneer registratie is uitgeschakeld. Zo gebruik je het:

  1. Voor de standaard docker-compose.yml (als je docker compose up gebruikt om de app te starten):

    docker compose exec api npm run create-user
  2. Voor de deploy-compose.yml (als je de Ubuntu Docker Guide hebt gevolgd):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user"
  3. Voor lokale ontwikkeling (vanaf de project root):

    npm run create-user

Volg de aanwijzingen om het e-mailadres en wachtwoord van de nieuwe gebruiker in te voeren.

Gebruikersscript verwijderen

Om een gebruiker te verwijderen, kun je het delete-user script gebruiken:

  1. Voor de standaard docker-compose.yml (als je docker compose up gebruikt om de app te starten):

    docker compose exec api npm run delete-user [email protected]
  2. Voor de deploy-compose.yml (als je de Ubuntu Docker Guide hebt gevolgd):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]"
  3. Voor lokale ontwikkeling (vanaf de project root):

    npm run delete-user [email protected]

Vervang [email protected] door het e-mailadres van de gebruiker die je wilt verwijderen.

Hoe is deze gids?