mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 09:37:28 +00:00
514 lines
15 KiB
Text
514 lines
15 KiB
Text
---
|
||
title: LobeChat 身份验证服务设置
|
||
description: 了解如何配置 LobeChat 的身份验证服务环境变量,包括 Better Auth、OAuth SSO、NextAuth 设置等。
|
||
tags:
|
||
- LobeChat
|
||
- 身份验证服务
|
||
- Better Auth
|
||
- 单点登录
|
||
- Next Auth
|
||
- Clerk
|
||
---
|
||
|
||
# 身份验证服务
|
||
|
||
LobeChat 在部署时提供了完善的身份验证服务能力,以下是相关的环境变量,你可以使用这些环境变量轻松定义需要在 LobeChat 中开启的身份验证服务。
|
||
|
||
## Better Auth
|
||
|
||
### 通用设置
|
||
|
||
#### `AUTH_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:用于加密会话令牌的密钥,Better Auth 和 Next Auth 共享。使用以下命令生成:`openssl rand -base64 32`
|
||
- 默认值:`-`
|
||
- 示例:`Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=`
|
||
|
||
#### `AUTH_EMAIL_VERIFICATION`
|
||
|
||
- 类型:可选
|
||
- 描述:设置为 `1` 以要求用户在登录前验证邮箱。用户注册后必须验证邮箱地址。
|
||
- 默认值:`0`
|
||
- 示例:`1`
|
||
|
||
#### `AUTH_SSO_PROVIDERS`
|
||
|
||
- 类型:可选
|
||
- 描述:启用的 SSO 提供商列表,以逗号分隔。顺序决定了登录页面上提供商的显示顺序。
|
||
- 默认值:`-`
|
||
- 示例:`google,github,microsoft,cognito`
|
||
|
||
#### `AUTH_ALLOWED_EMAILS`
|
||
|
||
- 类型:可选
|
||
- 描述:允许注册的邮箱或域名白名单,以逗号分隔。支持完整邮箱地址(如 `user@example.com`)或域名(如 `example.com`)。留空表示允许所有邮箱。
|
||
- 默认值:`-`
|
||
- 示例:`example.com,admin@other.com`
|
||
|
||
#### `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`
|
||
- 示例:`30s`、`1m`、`1h`
|
||
|
||
### 邮件服务(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 认证用户名,通常是您的邮箱地址。
|
||
- 默认值:`-`
|
||
- 示例:`your-email@example.com`
|
||
|
||
#### `SMTP_PASS`
|
||
|
||
- 类型:必选(用于邮件功能)
|
||
- 描述:SMTP 认证密码。Gmail 需使用应用专用密码。
|
||
- 默认值:`-`
|
||
- 示例:`your-app-specific-password`
|
||
|
||
#### `SMTP_FROM`
|
||
|
||
- 类型:可选
|
||
- 描述:发件人邮箱地址。AWS SES 等服务需要此配置(因为 `SMTP_USER` 不是有效邮箱地址)。若未设置,默认使用 `SMTP_USER`。
|
||
- 默认值:`SMTP_USER` 的值
|
||
- 示例:`noreply@example.com`
|
||
|
||
### Google
|
||
|
||
#### `AUTH_GOOGLE_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Google OAuth 应用的 Client ID。在 [Google Cloud Console](https://console.cloud.google.com/apis/credentials) 获取。
|
||
- 默认值:`-`
|
||
- 示例:`123456789.apps.googleusercontent.com`
|
||
|
||
#### `AUTH_GOOGLE_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:Google OAuth 应用的 Client Secret。
|
||
- 默认值:`-`
|
||
- 示例:`GOCSPX-xxxxxxxxxxxxxxxxxxxx`
|
||
|
||
### GitHub
|
||
|
||
#### `AUTH_GITHUB_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:GitHub OAuth 应用的 Client ID。在 [GitHub Developer Settings](https://github.com/settings/developers) 获取。
|
||
- 默认值:`-`
|
||
- 示例:`Ov23xxxxxxxxxxxxx`
|
||
|
||
#### `AUTH_GITHUB_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:GitHub OAuth 应用的 Client Secret。
|
||
- 默认值:`-`
|
||
- 示例:`xxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||
|
||
### Microsoft
|
||
|
||
#### `AUTH_MICROSOFT_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Microsoft Entra ID(Azure AD)应用的 Client ID。在 [Azure 门户](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) 获取。
|
||
- 默认值:`-`
|
||
- 示例:`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
|
||
|
||
#### `AUTH_MICROSOFT_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:Microsoft Entra ID 应用的 Client Secret。
|
||
- 默认值:`-`
|
||
- 示例:`xxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||
|
||
### AWS Cognito
|
||
|
||
#### `AUTH_COGNITO_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:AWS Cognito 用户池应用客户端的 Client ID。在 [AWS Cognito 控制台](https://console.aws.amazon.com/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。在 [飞书开放平台](https://open.feishu.cn/app) 获取。
|
||
- 默认值:`-`
|
||
- 示例:`cli_xxxxxxxxxxxxxxxx`
|
||
|
||
#### `AUTH_FEISHU_APP_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:飞书应用的 App Secret。
|
||
- 默认值:`-`
|
||
- 示例:`xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||
|
||
### 微信
|
||
|
||
#### `AUTH_WECHAT_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:微信开放平台应用的 App ID。在 [微信开放平台](https://open.weixin.qq.com/) 获取。
|
||
- 默认值:`-`
|
||
- 示例:`wxxxxxxxxxxxxxxxxxxx`
|
||
|
||
#### `AUTH_WECHAT_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:微信应用的 App Secret。
|
||
- 默认值:`-`
|
||
- 示例:`xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||
|
||
<Callout type={'info'}>
|
||
其他基于 OIDC 的提供商(Auth0、Authelia、Authentik、Casdoor、Cloudflare Zero Trust、Keycloak、Logto、Okta、ZITADEL、Generic OIDC)的环境变量配置与 Next Auth 相同。详情请参阅下方的 [Next Auth 章节](#next-auth)。
|
||
</Callout>
|
||
|
||
## Next Auth
|
||
|
||
### 通用设置
|
||
|
||
#### `NEXT_PUBLIC_ENABLE_NEXT_AUTH`
|
||
|
||
- v1.52.0 之后有变更
|
||
- 针对使用 Vercel 部署中使用 next-auth 的用户,需要额外添加 NEXT\_PUBLIC\_ENABLE\_NEXT\_AUTH=1 环境变量来确保开启 Next Auth
|
||
- 针对使用自构建镜像中使用 clerk 的用户,需要额外配置 NEXT\_PUBLIC\_ENABLE\_NEXT\_AUTH=0 环境变量来关闭 Next Auth
|
||
- 其他标准部署场景(Vercel 中使用 Clerk 与 Docker 中使用 next-auth )不受影响
|
||
|
||
#### `NEXT_AUTH_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32`.
|
||
- 默认值: `-`
|
||
- 示例: `Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=`
|
||
|
||
#### `NEXT_AUTH_SSO_PROVIDERS`
|
||
|
||
- 类型:可选
|
||
- 描述:选择 LoboChat 的单点登录提供商。如果有多个单点登录提供商,请用逗号分隔,例如 `auth0,microsoft-entra-id,authentik`
|
||
- 默认值: `auth0`
|
||
- 示例: `auth0,microsoft-entra-id,authentik`
|
||
|
||
#### `NEXTAUTH_URL`
|
||
|
||
- 类型:可选
|
||
- 描述:该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,在 Vercel 上部署时无需设置。
|
||
- 默认值:`-`
|
||
- 示例:`https://example.com/api/auth`
|
||
|
||
### Auth0
|
||
|
||
#### `AUTH_AUTH0_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Auth0 应用程序的 Client ID,您可以访问[这里](https://manage.auth0.com/dashboard)并导航至应用程序设置来查看
|
||
- 默认值: `-`
|
||
- 示例: `evCnOJP1UX8FMnXR9Xkj5t0NyFn5p70P`
|
||
|
||
#### `AUTH_AUTH0_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Auth0 应用程序的 Client Secret
|
||
- 默认值: `-`
|
||
- 示例: `wnX7UbZg85ZUzF6ioxPLnJVEQa1Elbs7aqBUSF16xleBS5AdkVfASS49-fQIC8Rm`
|
||
|
||
#### `AUTH_AUTH0_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Auth0 应用程序的签发人 / 域
|
||
- 默认值: `-`
|
||
- 示例: `https://example.auth0.com`
|
||
|
||
### Authelia
|
||
|
||
#### `AUTH_AUTHELIA_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Authelia 提供程序的 Client ID
|
||
- 默认值: `-`
|
||
- 示例: `lobe-chat`
|
||
|
||
#### `AUTH_AUTHELIA_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Authelia 提供程序的 Client Secret 的明文
|
||
- 默认值: `-`
|
||
- 示例: `insecure_secret`
|
||
|
||
#### `AUTH_AUTHELIA_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Authentik 提供程序的 OpenID Connect 颁发者
|
||
- 默认值: `-`
|
||
- 示例: `https://sso.example.com`
|
||
|
||
### Authentik
|
||
|
||
#### `AUTH_AUTHENTIK_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Authentik 提供程序的 Client ID
|
||
- 默认值: `-`
|
||
- 示例: `YNtbIRlYF8Kj66mTLue59nsGLlb7HNyx1qjPH6VS`
|
||
|
||
#### `AUTH_AUTHENTIK_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Authentik 提供程序的 Client Secret
|
||
- 默认值: `-`
|
||
- 示例: `h3lMI1vPUzqyqqeIDUbH5UNNOxyQLXk35h89yETeaAwHk7qVXBG3sJQWeqHBU5pyggwhP9u0eaZ1eq6DHUddVPLoS4gncqD37yuCr8jI8dY66WAt45MStDsDcQm0Ygze`
|
||
|
||
#### `AUTH_AUTHENTIK_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Authentik 提供程序的 OpenID Connect 颁发者
|
||
- 默认值: `-`
|
||
- 示例: `https://your-authentik-domain.com/application/o/slug/`
|
||
|
||
### Casdoor
|
||
|
||
#### `AUTH_CASDOOR_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Casdoor 提供程序的 Client ID
|
||
- 默认值: `-`
|
||
- 示例: `570bfa85a21800a25198`
|
||
|
||
#### `AUTH_CASDOOR_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Casdoor 提供程序的 Client Secret 的明文
|
||
- 默认值: `-`
|
||
- 示例: `233a623a15eac2db2e43bb8a323eda729552c405`
|
||
|
||
#### `AUTH_CASDOOR_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Casdoor 提供程序的 OpenID Connect 颁发者
|
||
- 默认值: `-`
|
||
- 示例: `https://lobe-auth-api.example.com/`
|
||
|
||
### Cloudflare Zero Trust
|
||
|
||
#### `AUTH_CLOUDFLARE_ZERO_TRUST_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Cloudflare Zero Trust 提供程序的 Client ID
|
||
- 默认值: `-`
|
||
- 示例: `711963a58df8c943cfd6c487cac99ce9f6ee0c88c0b7bf94584b8ff052fcb09c`
|
||
|
||
#### `AUTH_CLOUDFLARE_ZERO_TRUST_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Cloudflare Zero Trust 提供程序的 Client Secret 的明文
|
||
- 默认值: `-`
|
||
- 示例: `8f26d4ef834a828045b401e032ae128dbb00471bca53f0d25332323f525dfa30`
|
||
|
||
#### `AUTH_CLOUDFLARE_ZERO_TRUST_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Cloudflare Zero Trust 提供程序的 OpenID Connect 颁发者
|
||
- 默认值: `-`
|
||
- 示例: `https://example.cloudflareaccess.com/cdn-cgi/access/sso/oidc/711963a58df8c943cfd6c487cac99ce9f6ee0c88c0b7bf94584b8ff052fcb09c`
|
||
|
||
### Github
|
||
|
||
#### `AUTH_GITHUB_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Github 应用的客户端 ID。您可以在[这里](https://github.com/settings/apps)访问,并导航到应用程序设置以查看。
|
||
- 默认值: `-`
|
||
- 示例: `abd94200333283550508`
|
||
|
||
#### `AUTH_GITHUB_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Github 应用的客户端密钥。
|
||
- 默认值: `-`
|
||
- 示例: `dd262976ac0931d947e104891586a053f3d3750b`
|
||
|
||
### Logto
|
||
|
||
#### `AUTH_LOGTO_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Logto 应用程序的 Client ID。您可以在根据部署模式,在私有部署的 Logto 控制台或 [Logto Cloud](http://cloud.logto.io/) 中找到。
|
||
- 默认值:`-`
|
||
- 示例:`123456789012345678@your-project`
|
||
|
||
#### `AUTH_LOGTO_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:Logto 应用程序的 Client Secret。
|
||
- 默认值:`-`
|
||
- 示例:`9QF1n5ATzU7Z3mHp2Iw4gKX8kY6oR7uW1DnKcV3LqX2jF6iG3fBmJ1kV7nS5zE6A`
|
||
|
||
#### `AUTH_LOGTO_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述:Logto 应用程序的 OpenID Connect 颁发者(issuer)。根据部署模式,您可以在私有部署的 Logto 控制台或 [Logto Cloud](http://cloud.logto.io/) 中找到。
|
||
- 默认值:`-`
|
||
- 示例:`https://lobe-auth-api.example.com/oidc`
|
||
|
||
### Microsoft Entra ID
|
||
|
||
#### `AUTH_AZURE_AD_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Microsoft Entra ID 应用程序的客户端 ID。
|
||
- 默认值:`-`
|
||
- 示例:`be8f6da1-58c3-4f16-ff1b-78f5148e10df`
|
||
|
||
#### `AUTH_AZURE_AD_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:Microsoft Entra ID 应用程序的客户端密钥。
|
||
- 默认值:`-`
|
||
- 示例:`~gI8Q.pTiN1vwB6Gl.E1yFT1ojcXABkdACfJXaNj`
|
||
|
||
#### `AUTH_AZURE_AD_TENANT_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Microsoft Entra ID 应用程序的租户 ID。
|
||
- 默认值:`-`
|
||
- 示例:`c8ae2f36-edf6-4cda-96b9-d3e198a47cba`
|
||
|
||
### ZITADEL
|
||
|
||
#### `AUTH_ZITADEL_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:ZITADEL 应用的 Client ID。您可以在 ZITADEL 控制台应用设置中找到 Client ID。
|
||
- 默认值:`-`
|
||
- 示例:`123456789012345678@your-project`
|
||
|
||
#### `AUTH_ZITADEL_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:ZITADEL 应用的 Client Secret。
|
||
- 默认值:`-`
|
||
- 示例:`9QF1n5ATzU7Z3mHp2Iw4gKX8kY6oR7uW1DnKcV3LqX2jF6iG3fBmJ1kV7nS5zE6A`
|
||
|
||
#### `AUTH_ZITADEL_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述:ZITADEL 应用的 OpenID Connect 颁发者(issuer),通常为 ZITADEL 实例的 URL。您可以在 ZITADEL 控制台应用设置中的 `URLs` 选项卡中找到 issuer。
|
||
- 默认值:`-`
|
||
- 示例:`https://your-instance-abc123.zitadel.cloud`
|
||
|
||
### Okta
|
||
|
||
#### `AUTH_OKTA_ID`
|
||
|
||
- 类型:必选
|
||
- 描述:Okta 应用程序的 Client ID。您可以在 Okta 控制台的应用程序设置中找到。
|
||
- 默认值:`-`
|
||
- 示例:`ac12c950f3ce48c8a45a`
|
||
|
||
#### `AUTH_OKTA_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述:Okta 应用程序的 Client Secret。您可以在 Okta 控制台的应用程序设置中找到。
|
||
- 默认值:`-`
|
||
- 示例:`ex1HqvSOOkC5INqo42grOSqNvHoD4p84em1yy5QU7v88IZlaWGywFjYkrkpkSopt`
|
||
|
||
#### `AUTH_OKTA_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述:Okta 应用程序的 OpenID Connect 颁发者(issuer)。这是 Okta 实例的 URL—— 如果设置了品牌化,也可以是您的自定义域名。
|
||
- 默认值:`-`
|
||
- 示例:`https://your-instance.okta.com`
|
||
|
||
### Generic OIDC
|
||
|
||
#### `AUTH_GENERIC_OIDC_ID`
|
||
|
||
- 类型:必选
|
||
- 描述: Generic OIDC 提供程序的 Client ID
|
||
- 默认值: `-`
|
||
- 示例: `_client_id_for_lobe_chat_`
|
||
|
||
#### `AUTH_GENERIC_OIDC_SECRET`
|
||
|
||
- 类型:必选
|
||
- 描述: Generic OIDC 提供程序的 Client Secret 的明文
|
||
- 默认值: `-`
|
||
- 示例: `_client_secret_for_lobe_chat_`
|
||
|
||
#### `AUTH_GENERIC_OIDC_ISSUER`
|
||
|
||
- 类型:必选
|
||
- 描述: Generic OIDC 提供程序的 OpenID Connect 颁发者
|
||
- 默认值: `-`
|
||
- 示例: `https://sso.example.com`
|
||
|
||
<Callout>
|
||
如果您需要使用其他身份验证服务提供商,可以提交
|
||
[功能请求](https://github.com/lobehub/lobe-chat/issues/new/choose) 或 Pull Request。
|
||
</Callout>
|
||
|
||
## Clerk
|
||
|
||
### `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`
|
||
|
||
- 类型:必选
|
||
- 描述: Clerk 应用程序的 Publishable key。您可以在[这里](https://dashboard.clerk.com)访问,并导航到 API Keys 以查看。
|
||
- 默认值:`-`
|
||
- 示例: `pk_test_Zmxvd4luZy1wdW1hLTIyLmNsXXJrTmFjY291bnRzLmRldiQ` (测试环境) / `pk_live_Y2xlcdsubG9iZWh1Yi1cbmMuY24k` (生产环境)
|
||
|
||
### `CLERK_SECRET_KEY`
|
||
|
||
- 类型:必选
|
||
- 描述: Clerk 应用程序的 Secret key。您可以在[这里](https://dashboard.clerk.com)访问,并导航到 API Keys 以查看。
|
||
- 默认值:`-`
|
||
- 示例: `sk_test_513Ma0P7IAWM1XMv4waxZjRYRajWTaCfJLjpEO3SD2` (测试环境) / `sk_live_eMMlHjwJvZFUfczFljSKqZdwQtLvmczmsJSNmdrpeZ`(生产环境)
|