Back to Lobehub

LobeHub 身份验证服务设置

docs/self-hosting/environment-variables/auth.zh-CN.mdx

2.1.566.3 KB
Original Source

身份验证服务

LobeHub 在部署时提供了完善的身份验证服务能力,以下是相关的环境变量,你可以使用这些环境变量轻松定义需要在 LobeHub 中开启的身份验证服务。

Better Auth

通用设置

AUTH_SECRET

  • 类型:必选
  • 描述:用于加密会话令牌的密钥。使用以下命令生成:openssl rand -base64 32
  • 默认值:-
  • 示例:Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=

AUTH_EMAIL_VERIFICATION

  • 类型:可选
  • 描述:设置为 1 以要求用户在登录前验证邮箱。用户注册后必须验证邮箱地址。
  • 默认值:0
  • 示例:1

AUTH_SSO_PROVIDERS

  • 类型:可选
  • 描述:启用的 SSO 提供商列表,以逗号分隔。顺序决定了登录页面上提供商的显示顺序。
  • 默认值:-
  • 示例:google,github,microsoft,cognito

AUTH_ALLOWED_EMAILS

  • 类型:可选
  • 描述:允许注册的邮箱或域名白名单,以逗号分隔。支持完整邮箱地址(如 [email protected])或域名(如 example.com)。留空表示允许所有邮箱。
  • 默认值:-
  • 示例:example.com,[email protected]

AUTH_DISABLE_EMAIL_PASSWORD

  • 类型:可选
  • 描述:设置为 1 以禁用邮箱密码登录,强制用户使用 SSO 登录。启用后,登录页面将隐藏邮箱输入框,注册页面将重定向到登录页。
  • 默认值:0
  • 示例:1

JWKS_KEY

  • 类型:必选
  • 描述:用于签名和验证 JWT 的 JWKS(JSON Web Key Set)密钥。用于 OIDC JWT token 签名和内部服务调用认证 token。必须是包含 RS256 RSA 密钥对的 JWKS JSON 字符串。
  • 默认值:-
<GenerateJWKSKey />

INTERNAL_JWT_EXPIRATION

  • 类型:可选
  • 描述:内部 JWT 令牌的过期时间,用于 lambda → async 调用。格式:数字后跟单位(s = 秒,m = 分钟,h = 小时)。为了安全性应尽可能短,但需要足够长以应对网络延迟和服务器处理时间。
  • 默认值:30s
  • 示例:30s1m1h

邮件服务(SMTP)

启用邮箱验证和密码重置功能需要配置以下设置。

SMTP_HOST

  • 类型:必选(用于邮件功能)
  • 描述:SMTP 服务器主机名。
  • 默认值:-
  • 示例:smtp.gmail.com

SMTP_PORT

  • 类型:必选(用于邮件功能)
  • 描述:SMTP 服务器端口。TLS 通常为 587,SSL 为 465
  • 默认值:-
  • 示例:587

SMTP_SECURE

  • 类型:可选
  • 描述:是否使用安全连接。端口 465(SSL)设置为 true,端口 587(TLS)设置为 false
  • 默认值:false
  • 示例:false

SMTP_USER

  • 类型:必选(用于邮件功能)
  • 描述:SMTP 认证用户名,通常是您的邮箱地址。
  • 默认值:-
  • 示例:[email protected]

SMTP_PASS

  • 类型:必选(用于邮件功能)
  • 描述:SMTP 认证密码。Gmail 需使用应用专用密码。
  • 默认值:-
  • 示例:your-app-specific-password

SMTP_FROM

  • 类型:可选
  • 描述:发件人邮箱地址。AWS SES 等服务需要此配置(因为 SMTP_USER 不是有效邮箱地址)。若未设置,默认使用 SMTP_USER
  • 默认值:SMTP_USER 的值
  • 示例:[email protected]

Google

AUTH_GOOGLE_ID

  • 类型:必选
  • 描述:Google OAuth 应用的 Client ID。在 Google Cloud Console 获取。
  • 默认值:-
  • 示例:123456789.apps.googleusercontent.com

AUTH_GOOGLE_SECRET

  • 类型:必选
  • 描述:Google OAuth 应用的 Client Secret。
  • 默认值:-
  • 示例:GOCSPX-xxxxxxxxxxxxxxxxxxxx

GitHub

AUTH_GITHUB_ID

  • 类型:必选
  • 描述:GitHub OAuth 应用的 Client ID。在 GitHub Developer Settings 获取。
  • 默认值:-
  • 示例:Ov23xxxxxxxxxxxxx

AUTH_GITHUB_SECRET

  • 类型:必选
  • 描述:GitHub OAuth 应用的 Client Secret。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Microsoft

AUTH_MICROSOFT_ID

  • 类型:必选
  • 描述:Microsoft Entra ID(Azure AD)应用的 Client ID。在 Azure 门户 获取。
  • 默认值:-
  • 示例:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

AUTH_MICROSOFT_SECRET

  • 类型:必选
  • 描述:Microsoft Entra ID 应用的 Client Secret。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

AUTH_MICROSOFT_AUTHORITY_URL

  • 类型:可选
  • 描述:Microsoft Entra ID 的 Authority URL。
  • 默认值:https://login.microsoftonline.com
  • 示例:https://login.partner.microsoftonline.cn

AUTH_MICROSOFT_TENANT_ID

  • 类型:可选
  • 描述:单租户 Microsoft Entra ID 应用的 Directory (tenant) ID。
  • 默认值:common
  • 示例:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

AWS Cognito

AUTH_COGNITO_ID

  • 类型:必选
  • 描述:AWS Cognito 用户池应用客户端的 Client ID。在 AWS Cognito 控制台 获取。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxx

AUTH_COGNITO_SECRET

  • 类型:必选
  • 描述:AWS Cognito 应用客户端的 Client Secret。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

AUTH_COGNITO_ISSUER

  • 类型:必选
  • 描述:Cognito 用户池的颁发者 URL。格式:https://cognito-idp.{region}.amazonaws.com/{userPoolId}
  • 默认值:-
  • 示例:https://cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxxxxx

飞书

AUTH_FEISHU_APP_ID

  • 类型:必选
  • 描述:飞书应用的 App ID。在 飞书开放平台 获取。
  • 默认值:-
  • 示例:cli_xxxxxxxxxxxxxxxx

AUTH_FEISHU_APP_SECRET

  • 类型:必选
  • 描述:飞书应用的 App Secret。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

微信

AUTH_WECHAT_ID

  • 类型:必选
  • 描述:微信开放平台应用的 App ID。在 微信开放平台 获取。
  • 默认值:-
  • 示例:wxxxxxxxxxxxxxxxxxxx

AUTH_WECHAT_SECRET

  • 类型:必选
  • 描述:微信应用的 App Secret。
  • 默认值:-
  • 示例:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx