自定义域名
你的 Logto 租户自带一个默认的免费域名 {{tenant-id}}.app.logto
。不过,你可以通过使用自定义域名(如 auth.example.com
)来提升用户体验和品牌识别度。
你的自定义域名用于多个功能:
- 登录和注册页面 的 URL
- Passkey 绑定链接 URL(在用户已绑定 Passkey 后更改域名可能会阻止他们的认证 (Authentication))。
- 社交连接器 或 企业单点登录 (SSO) 连接器 的回调 URI。
- 将 Logto 集成到你的应用时的 SDK 端点。
在服务上线后更改域名可能会带来问题,因为你的应用代码和集成可能仍然引用旧域名。为确保平滑过渡,请在生产租户创建时一开始就设置自定义域名。
在控制台配置自定义域名
要在 Logto 控制台添加新的自定义域名,请按照以下步骤操作:
-
进入 控制台 > 设置 > 域名。
-
在“自定义域名”部分,输入你的域名并点击“添加域名”。
-
复制表格中的 CNAME 值,前往你的域名 DNS 服务商添加记录。
-
等待验证和 SSL 处理。
- 我们会每 10 秒自动验证一次你的记录,直到自定义域名添加成功。只需确保输入的域名或 DNS 记录准确无误。
- 验证通常只需几分钟,但根据 DNS 服务商不同,最长可能需要 24 小时。过程中你可以自由离开页面。
故障排查
SSL 证书问题
如果你在设置自定义域名时遇到 SSL 证书问题,可能与你的 DNS 配置中的 CAA 记录有关。CAA 记录指定了哪些证书颁发机构(CA)被授权为你的域名颁发证书。如果你使用了 CAA 记录,需要为 Logto 授权 "letsencrypt.org" 和 "pki.goog" 这两个 CA。
如需排查和解决与 CAA 记录相关的 SSL 证书问题,请参考 Cloudflare 的 CAA 记录文档。
“The hostname is associated with a held zone” 错误
如果你在添加自定义域名时遇到 “The hostname is associated with a held zone, please contact the owner to have the hold removed” 的错误提示,说明该域名已在 Cloudflare 区域中,并被设置为“Zone Hold”状态。详见 Cloudflare 官方文档。
要解决此问题,你需要解除 zone hold。请按照上述链接中的说明在 Cloudflare 中释放 zone hold。
使用自定义域名
一旦你完成设置,你的自定义域名和默认 Logto 域名都将可用于你的租户。但要激活自定义域名,还需要进行一些配置。
本文假设你的自定义域名为 auth.example.com
。
为应用更新 SDK 端点
通过修改端点的域名,调整 Logto SDK 的初始化代码。
const client = new LogtoClient({
...,// 其他选项
endpoint: 'https://auth.example.com',
});
为其他应用修改认证 (Authentication) 端点
如果你的应用没有使用 Logto SDK,则需要更新它们的认证 (Authentication) 端点。
你可以在如下 well-known URL 找到认证 (Authentication) 端点:
https://auth.example.com/oidc/.well-known/openid-configuration
更新社交连接器的回调 URI
如果你的用户正在使用自定义域名,社交连接器的回调 URI 会自动更新。你需要前往社交服务商的开发者控制台,更新回调 URI。
当你的用户使用自定义域名时,社交连接器的回调 URI 会使用新域名。因此,你需要前往社交服务商的开发者控制台手动更新回调 URI。