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

Sistem Autentikasi

Panduan ini menjelaskan cara menggunakan sistem autentikasi pengguna LibreChat, yang menawarkan login email dan sosial yang aman serta mudah. Anda akan mempelajari cara mengatur pendaftaran, login, pengaturan ulang kata sandi, dan banyak lagi.

Umum

Untuk gambaran umum yang cepat, silakan merujuk ke panduan pengguna yang disediakan di sini: Authentication

Berikut adalah gambaran umum mengenai konfigurasi umum.

KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanAktifkan atau nonaktifkan HANYA login email.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanAktifkan atau nonaktifkan pendaftaran Email untuk pengguna baru.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanIzinkan pengguna untuk terhubung ke LibreChat dengan berbagai jejaring sosial.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanAktifkan atau nonaktifkan pendaftaran pengguna baru menggunakan berbagai jejaring sosial.ALLOW_SOCIAL_REGISTRATION=false

Catatan: OpenID dan SAML tidak mendukung kemampuan untuk menonaktifkan pendaftaran saja.

Tips Cepat:

  • Bahkan dengan pendaftaran dinonaktifkan, Anda dapat menambahkan pengguna secara langsung ke basis data menggunakan skrip create-user yang dirinci di bawah ini.
  • Untuk menghapus pengguna, Anda dapat menggunakan skrip delete-user yang juga dijelaskan secara rinci di bawah ini.
Layar pendaftaran penggunaLayar pendaftaran pengguna

Kedaluwarsa Sesi dan Refresh Token

KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Waktu kedaluwarsa sesi.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Waktu kedaluwarsa 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 dan Refresh Secret

  • Anda harus menggunakan nilai aman yang baru. Contoh yang diberikan adalah kunci 32-byte (64 karakter dalam hex).
    • Gunakan alat ini untuk membuat beberapa dengan cepat: JWT Keys
KeyTypeDescriptionExample
JWT_SECRETstring (hex)Kunci rahasia JWT.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)Kunci rahasia refresh JWT.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

Sistem Moderasi Otomatis (opsional)

Sistem Moderasi Otomatis diaktifkan secara default. Sistem ini menggunakan mekanisme penilaian untuk melacak pelanggaran pengguna. Saat pengguna melakukan tindakan seperti login, pendaftaran, atau pengiriman pesan yang berlebihan, mereka akan mengumpulkan skor pelanggaran. Setelah mencapai ambang batas yang ditetapkan, pengguna dan IP mereka akan diblokir sementara. Sistem ini memastikan keamanan platform dengan memantau dan memberikan penalti terhadap aktivitas yang cepat atau mencurigakan.

Untuk menyiapkan sistem mod, tinjau panduan penyiapan.

Harap Dicatat: Jika Anda ingin ini berfungsi dalam mode pengembangan, Anda perlu membuat file bernama .env.development di direktori root dan mengatur DOMAIN_CLIENT ke http://localhost:3090 atau port apa pun yang disediakan oleh vite saat menjalankan npm run frontend-dev

Skrip Manajemen Pengguna

Membuat User Script

Skrip create-user memungkinkan Anda untuk menambahkan pengguna langsung ke basis data, bahkan saat pendaftaran dinonaktifkan. Berikut cara menggunakannya:

  1. Untuk docker-compose.yml default (jika Anda menggunakan docker compose up untuk menjalankan aplikasi):

    docker compose exec api npm run create-user
  2. Untuk deploy-compose.yml (jika Anda mengikuti Panduan Docker Ubuntu):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user"
  3. Untuk pengembangan lokal (dari root proyek):

    npm run create-user

Ikuti perintah untuk memasukkan email dan kata sandi pengguna baru.

Skrip Hapus Pengguna

Untuk menghapus pengguna, Anda dapat menggunakan skrip delete-user:

  1. Untuk docker-compose.yml default (jika Anda menggunakan docker compose up untuk menjalankan aplikasi):

    docker compose exec api npm run delete-user [email protected]
  2. Untuk deploy-compose.yml (jika Anda mengikuti Panduan Docker Ubuntu):

    docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run delete-user [email protected]"
  3. Untuk pengembangan lokal (dari root proyek):

    npm run delete-user [email protected]

Ganti [email protected] dengan email pengguna yang ingin Anda hapus.

Bagaimana panduan ini?