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.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Schakel ALLEEN e-mail login in of uit. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | Schakel e-mailregistratie voor nieuwe gebruikers in of uit. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Sta gebruikers toe om verbinding te maken met LibreChat via verschillende sociale netwerken. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Schakel 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.
Sessieverloop en Refresh Token
- Standaardwaarden: sessieverloop: 15 minuten, verloop van refresh token: 7 dagen
- Voor meer informatie: GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Sessie-verlooptijd. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (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 dataJWT 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
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | JWT geheime sleutel. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (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.developmentaanmaken in de hoofdmap enDOMAIN_CLIENTinstellen ophttp://localhost:3090of de poort die door vite wordt verstrekt bij het uitvoeren vannpm 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:
-
Voor de standaard
docker-compose.yml(als jedocker compose upgebruikt om de app te starten):docker compose exec api npm run create-user -
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" -
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:
-
Voor de standaard
docker-compose.yml(als jedocker compose upgebruikt om de app te starten):docker compose exec api npm run delete-user [email protected] -
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]" -
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?
Saldo
Configureer token-kredietsaldi voor gebruikers in LibreChat
E-mailinstellingen
Deze handleiding legt uit hoe je de beveiligde e-mailverificatie/wachtwoordreset configureert. Je kunt deze configureren om te werken met verschillende e-mailservices, waaronder Gmail, Mailgun en aangepaste mailservers.