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.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Aktifkan atau nonaktifkan HANYA login email. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | Aktifkan atau nonaktifkan pendaftaran Email untuk pengguna baru. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Izinkan pengguna untuk terhubung ke LibreChat dengan berbagai jejaring sosial. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Aktifkan 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.
Kedaluwarsa Sesi dan Refresh Token
- Nilai default: kedaluwarsa sesi: 15 menit, kedaluwarsa token refresh: 7 hari
- Untuk informasi lebih lanjut: GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Waktu kedaluwarsa sesi. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (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 dataJWT 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
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | Kunci rahasia JWT. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (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.developmentdi direktori root dan mengaturDOMAIN_CLIENTkehttp://localhost:3090atau port apa pun yang disediakan oleh vite saat menjalankannpm 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:
-
Untuk
docker-compose.ymldefault (jika Anda menggunakandocker compose upuntuk menjalankan aplikasi):docker compose exec api npm run create-user -
Untuk
deploy-compose.yml(jika Anda mengikuti Panduan Docker Ubuntu):docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run create-user" -
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:
-
Untuk
docker-compose.ymldefault (jika Anda menggunakandocker compose upuntuk menjalankan aplikasi):docker compose exec api npm run delete-user [email protected] -
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]" -
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?
Saldo
Konfigurasikan saldo kredit token untuk pengguna di LibreChat
Pengaturan email
Panduan ini menjelaskan cara mengonfigurasi verifikasi email/atur ulang kata sandi yang aman. Anda dapat mengonfigurasinya agar berfungsi dengan berbagai layanan email, termasuk Gmail, Mailgun, dan server email kustom.