身份验证系统
本指南介绍了如何使用 LibreChat 的用户身份验证系统,该系统提供安全且便捷的电子邮件及社交登录功能。您将学习如何设置注册、登录、密码重置等功能。
常规
如需快速概览,请参阅此处提供的用户指南:Authentication
以下是常规配置的概述。
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | 启用或禁用仅限电子邮件登录。 | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | 启用或禁用新用户的电子邮件注册。 | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | 允许用户通过各种社交网络连接到 LibreChat。 | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | 启用或禁用使用各种社交网络注册新用户的功能。 | ALLOW_SOCIAL_REGISTRATION=false |
注意: OpenID 和 SAML 不支持仅禁用注册的功能。
快速提示:
- 即使禁用了注册功能,您也可以使用下文详述的 create-user script 将用户直接添加到数据库中。
- 要删除用户,您可以使用下文详述的 delete-user 脚本。
会话过期与刷新令牌
- 默认值:会话过期时间:15 分钟,刷新令牌过期时间:7 天
- 更多信息请参阅:GitHub PR #927 - Refresh Token
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | 会话过期时间。 | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | 刷新令牌过期时间。 | REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 |
JWT Secret 和 Refresh Secret
- 您应该使用新的安全值。所给示例为 32 字节的密钥(十六进制下为 64 个字符)。
- 使用此工具快速生成一些内容:JWT Keys
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | JWT 密钥 | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | JWT 刷新密钥。 | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
自动化审核系统 (可选)
自动审核系统(Automated Moderation System)默认处于启用状态。它使用评分机制来跟踪用户的违规行为。当用户进行诸如频繁登录、注册或发送消息等操作时,他们会积累违规分数。一旦达到设定的阈值,该用户及其 IP 地址将被暂时封禁。该系统通过监控并惩罚快速或可疑的活动,确保了平台的安全性。
要设置 mod 系统,请查阅 设置指南。
请注意:如果您希望此功能在开发模式下正常工作,您需要在根目录下创建一个名为
.env.development的文件,并将DOMAIN_CLIENT设置为http://localhost:3090或运行npm run frontend-dev时 vite 提供的任何端口。
用户管理脚本
创建用户脚本
create-user 脚本允许您直接向数据库添加用户,即使在禁用了注册功能的情况下也是如此。使用方法如下:
-
对于默认的
docker-compose.yml(如果您使用docker compose up来启动应用): -
对于
deploy-compose.yml(如果你遵循了 Ubuntu Docker Guide): -
对于本地开发(从项目根目录):
按照提示输入新用户的电子邮件和密码。
删除用户脚本
要删除用户,您可以使用 delete-user 脚本:
-
对于默认的
docker-compose.yml(如果您使用docker compose up来启动应用): -
对于
deploy-compose.yml(如果你遵循了 Ubuntu Docker Guide): -
对于本地开发(从项目根目录):
将 [email protected] 替换为您想要删除的用户的电子邮件地址。
这篇指南怎么样?