Auth0 có thể được sử dụng làm nhà cung cấp OpenID Connect cho LibreChat. Khi sử dụng Auth0 với tính năng tái sử dụng token được bật (OPENID_REUSE_TOKENS=true), bạn phải cấu hình biến môi trường OPENID_AUDIENCE để ngăn ngừa các sự cố xác thực.
Auth0 không cho phép các URL http://localhost trong các ứng dụng production. Để phát triển/thử nghiệm cục bộ, bạn sẽ cần sử dụng HTTPS. Bạn có thể sử dụng các dịch vụ như:
ngrok: ngrok http 3080 (cung cấp đường hầm HTTPS tới localhost)
Caddy: Máy chủ proxy HTTPS cục bộ
localtunnel: Tương tự như ngrok
Ví dụ với ngrok:
ngrok http 3080# This will give you a URL like: https://abc123.ngrok.io
Bước này là bắt buộc khi sử dụng OPENID_REUSE_TOKENS=true. Nếu không có nó, Auth0 sẽ trả về các opaque token không thể được xác thực bởi LibreChat, dẫn đến các vòng lặp làm mới vô hạn.
Đi tới Auth0 Dashboard → Applications → APIs
Nhấp vào "Create API"
Cấu hình API:
Tên: LibreChat API (hoặc tên bạn ưu tiên)
Identifier: https://api.librechat.ai (hoặc định danh ưa thích của bạn)
Lưu ý: Đây chỉ là một định danh duy nhất, không phải là một URL thực tế. Nó không cần phải truy cập được.
Các mẫu phổ biến: https://api.yourdomain.com, https://librechat.yourdomain.com, v.v.
Thêm các biến môi trường sau vào tệp .env của bạn:
# 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 bao gồm tham số audience trong các yêu cầu ủy quyền, sử dụng giá trị khác rỗng đầu tiên khi có nhiều audience được cấu hình và phân tách bằng dấu phẩy.
Auth0 nhận diện đối tượng (audience) là một API đã đăng ký
Auth0 phát hành các JWT access token có thể được xác thực
LibreChat xác thực token thành công và quá trình xác thực hoạt động bình thường
Định danh cho Auth0 API của bạn. Bắt buộc khi sử dụng OPENID_REUSE_TOKENS=true với Auth0 để ngăn chặn các vấn đề về opaque token. Chấp nhận các giá trị được phân tách bằng dấu phẩy để xác thực JWT; các yêu cầu ủy quyền sẽ sử dụng giá trị khác rỗng đầu tiên.