Kimlik Doğrulama Sistemi
Bu kılavuz, güvenli ve kolay e-posta ve sosyal giriş seçenekleri sunan LibreChat kullanıcı kimlik doğrulama sisteminin nasıl kullanılacağını açıklar. Kayıt olma, giriş yapma, şifre sıfırlama ve daha fazlasını nasıl ayarlayacağınızı öğreneceksiniz.
Genel
Hızlı bir genel bakış için burada sağlanan kullanıcı kılavuzuna başvurun: Authentication
Genel yapılandırmaya dair bir genel bakış aşağıdadır.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | SADECE e-posta ile girişi etkinleştirin veya devre dışı bırakın. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | Yeni kullanıcıların E-posta ile kaydını etkinleştirin veya devre dışı bırakın. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Kullanıcıların LibreChat'e çeşitli sosyal ağlarla bağlanmasına izin verin. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Çeşitli sosyal ağları kullanarak yeni kullanıcıların kaydını etkinleştirin veya devre dışı bırakın. | ALLOW_SOCIAL_REGISTRATION=false |
Not: OpenID ve SAML, yalnızca kaydı devre dışı bırakma özelliğini desteklemez.
Hızlı İpuçları:
- Kayıt özelliği devre dışı bırakılmış olsa bile, aşağıda detaylandırılan create-user script kullanarak kullanıcıları doğrudan veritabanına ekleyebilirsiniz.
- Bir kullanıcıyı silmek için aşağıda da detaylandırılan delete-user script aracını kullanabilirsiniz.
Oturum Zaman Aşımı ve Yenileme Belirteci
- Varsayılan değerler: oturum süresi: 15 dakika, yenileme belirteci süresi: 7 gün
- Daha fazla bilgi için: GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Oturum zaman aşımı süresi. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | Yenileme belirteci (refresh token) sona erme süresi. | 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 ve Refresh Secret
- Yeni ve güvenli değerler kullanmalısınız. Verilen örnekler 32 baytlık anahtarlardır (onaltılık tabanda 64 karakter).
- Hızlıca bazılarını oluşturmak için bu aracı kullanın: JWT Keys
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | JWT gizli anahtarı. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | JWT yenileme gizli anahtarı. | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
Otomatik Denetleme Sistemi (isteğe bağlı)
Otomatik Denetleme Sistemi varsayılan olarak etkindir. Kullanıcı ihlallerini takip etmek için bir puanlama mekanizması kullanır. Kullanıcılar aşırı giriş, kayıt veya mesajlaşma gibi eylemlerde bulundukça ihlal puanları biriktirirler. Belirlenen bir eşiğe ulaşıldığında, kullanıcı ve IP adresi geçici olarak yasaklanır. Bu sistem, hızlı veya şüpheli etkinlikleri izleyip cezalandırarak platform güvenliğini sağlar.
Mod sistemini kurmak için kurulum kılavuzunu inceleyin.
Lütfen Dikkat: Bunun geliştirme modunda çalışmasını istiyorsanız, kök dizinde
.env.developmentadında bir dosya oluşturmanız veDOMAIN_CLIENTdeğerinihttp://localhost:3090olarak veyanpm run frontend-devçalıştırıldığında vite tarafından sağlanan port neyse ona ayarlamanız gerekecektir.
Kullanıcı Yönetim Betikleri
Kullanıcı Betiği Oluştur
create-user betiği, kayıt özelliği devre dışı bırakılmış olsa bile kullanıcıları doğrudan veritabanına eklemenize olanak tanır. Nasıl kullanılacağı aşağıdadır:
-
Varsayılan
docker-compose.ymliçin (uygulamayı başlatmak üzeredocker compose upkullanıyorsanız):docker compose exec api npm run create-user -
deploy-compose.ymliçin (Ubuntu Docker Rehberi kısmını takip ettiyseniz):docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user" -
Yerel geliştirme için (proje kök dizininden):
npm run create-user
Yeni kullanıcının e-postasını ve şifresini girmek için komutları izleyin.
Kullanıcı Silme Betiği
Bir kullanıcıyı silmek için delete-user betiğini kullanabilirsiniz:
-
Varsayılan
docker-compose.ymliçin (uygulamayı başlatmak üzeredocker compose upkullanıyorsanız):docker compose exec api npm run delete-user [email protected] -
deploy-compose.ymliçin (Ubuntu Docker Rehberi kısmını takip ettiyseniz):docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]" -
Yerel geliştirme için (proje kök dizininden):
npm run delete-user [email protected]
[email protected] ifadesini silmek istediğiniz kullanıcının e-posta adresiyle değiştirin.
Bu rehber nasıl?
Bakiye
LibreChat'te kullanıcılar için token kredi bakiyelerini yapılandırın
E-posta kurulumu
Bu kılavuz, güvenli e-posta doğrulama/şifre sıfırlama işlemlerinin nasıl yapılandırılacağını açıklar. Gmail, Mailgun ve özel posta sunucuları dahil olmak üzere çeşitli e-posta servisleriyle çalışacak şekilde yapılandırabilirsiniz.