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

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.

KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanSADECE e-posta ile girişi etkinleştirin veya devre dışı bırakın.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanYeni kullanıcıların E-posta ile kaydını etkinleştirin veya devre dışı bırakın.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanKullanıcıların LibreChat'e çeşitli sosyal ağlarla bağlanmasına izin verin.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanÇ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.
Kullanıcı kayıt ekranıKullanıcı kayıt ekranı

Oturum Zaman Aşımı ve Yenileme Belirteci

KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Oturum zaman aşımı süresi.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (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 data

JWT 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
KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT gizli anahtarı.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (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.development adında bir dosya oluşturmanız ve DOMAIN_CLIENT değerini http://localhost:3090 olarak veya npm 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:

  1. Varsayılan docker-compose.yml için (uygulamayı başlatmak üzere docker compose up kullanıyorsanız):

    docker compose exec api npm run create-user
  2. deploy-compose.yml için (Ubuntu Docker Rehberi kısmını takip ettiyseniz):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user"
  3. 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:

  1. Varsayılan docker-compose.yml için (uygulamayı başlatmak üzere docker compose up kullanıyorsanız):

    docker compose exec api npm run delete-user [email protected]
  2. deploy-compose.yml için (Ubuntu Docker Rehberi kısmını takip ettiyseniz):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]"
  3. 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?