Auth0 dapat digunakan sebagai penyedia OpenID Connect untuk LibreChat. Saat menggunakan Auth0 dengan penggunaan ulang token diaktifkan (OPENID_REUSE_TOKENS=true), Anda harus mengonfigurasi variabel lingkungan OPENID_AUDIENCE untuk mencegah masalah autentikasi.
Auth0 tidak mengizinkan URL http://localhost pada aplikasi produksi. Untuk pengembangan/pengujian lokal, Anda perlu menggunakan HTTPS. Anda dapat menggunakan layanan seperti:
ngrok: ngrok http 3080 (menyediakan tunnel HTTPS ke localhost)
Caddy: Server proxy HTTPS lokal
localtunnel: Mirip dengan ngrok
Contoh dengan ngrok:
ngrok http 3080# This will give you a URL like: https://abc123.ngrok.io
Langkah ini diperlukan saat menggunakan OPENID_REUSE_TOKENS=true. Tanpanya, Auth0 akan mengembalikan token buram (opaque tokens) yang tidak dapat divalidasi oleh LibreChat, sehingga menyebabkan perulangan penyegaran (refresh loops) tanpa batas.
Buka Dashboard Auth0 → Applications → APIs
Klik "Create API"
Konfigurasi API:
Nama: LibreChat API (atau nama pilihan Anda)
Identifier: https://api.librechat.ai (atau identifier pilihan Anda)
Catatan: Ini hanyalah pengenal unik, bukan URL yang sebenarnya. Ini tidak perlu dapat diakses.
Pola umum: https://api.yourdomain.com, https://librechat.yourdomain.com, dll.
Tambahkan variabel lingkungan berikut ke file .env Anda:
# OpenID Connect Configuration# Domain from Basic Information (add https:// prefix)OPENID_ISSUER=https://dev-abc123.us.auth0.com# Client ID from Basic InformationOPENID_CLIENT_ID=your_long_alphanumeric_client_id# Client Secret from Basic Information (click to reveal)OPENID_CLIENT_SECRET=your_client_secret_from_basic_information# Callback URL (must match what's configured in Auth0)OPENID_CALLBACK_URL=/oauth/openid/callback# Token ConfigurationOPENID_REUSE_TOKENS=trueOPENID_SCOPE=openid profile email offline_access# IMPORTANT: Your Auth0 API identifier (from Step 3)OPENID_AUDIENCE=https://api.librechat.ai# Security Settings (recommended)OPENID_USE_PKCE=true# Session Configuration (generate a secure random string)OPENID_SESSION_SECRET=your-secure-session-secret-32-chars-or-more# Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000)# OPENID_MAX_LOGOUT_URL_LENGTH=2000# Optional: Custom button appearanceOPENID_BUTTON_LABEL=Continue with Auth0# OPENID_IMAGE_URL=https://path-to-auth0-logo.png# If using ngrok for testing, also update:# DOMAIN_CLIENT=https://your-domain.ngrok.io# DOMAIN_SERVER=https://your-domain.ngrok.io
LibreChat menyertakan parameter audience dalam permintaan otorisasi, menggunakan nilai non-kosong pertama ketika beberapa audiens yang dipisahkan koma dikonfigurasi.
Auth0 mengenali audiens sebagai API yang terdaftar
Auth0 menerbitkan token akses JWT yang dapat divalidasi
LibreChat berhasil memvalidasi token dan autentikasi berfungsi dengan baik
Pengidentifikasi API Auth0 Anda. Diperlukan saat menggunakan OPENID_REUSE_TOKENS=true dengan Auth0 untuk mencegah masalah token buram (opaque token). Nilai yang dipisahkan koma diterima untuk validasi JWT; permintaan otorisasi menggunakan nilai pertama yang tidak kosong.