自訂網域 (Custom domains)
在服務上線後變更網域可能會造成困擾,因為你的應用程式程式碼與整合可能仍然引用舊網域。為確保順利遷移,建議在建立 Production 租戶時就設定自訂網域。
你的 Logto 租戶預設會有一個免費網域 {{tenant-id}}.app.logto。不過,你可以透過自訂網域(如 auth.example.com)提升使用者體驗與品牌辨識度。
你的自訂網域會用於多個功能:
- 登入與註冊頁面 的網址
- 社交連接器 或 企業級單一登入 (Enterprise SSO) 連接器 的回呼 URI
- Passkey 連結網址(使用者綁定 Passkey 後變更網域可能會導致驗證失敗)
- 與應用程式整合時的 SDK 端點
多個自訂網域
Logto 現已支援為單一租戶設定多個自訂網域,讓你的登入頁面可從多個品牌網域存取。
依方案限制:
- 開發租戶 (Development tenant):可免費新增最多 2 個自訂網域(僅供測試)
- 免費方案 (Free plan):可免費新增 1 個自訂網域
- 專業方案 (Pro plan):內含 1 個自訂網域,並可透過加購最多新增至 10 個自訂網域
- 企業方案 (Enterprise plan):如需超過 10 個自訂網域或有特殊需求,請聯絡我們
詳情請參閱 Logto 價格表。
多個自訂網域的應用場景:
- 為不同地區、語系、應用程式、組織或頂級網域使用不同網域
- 在登入前後維持一致品牌體驗,建立信任
- 透過 自訂 UI 提供地區或品牌專屬的驗證 (Authentication) 體驗
在 Console 設定自訂網域
在 Logto Console 新增自訂網域,請依下列步驟操作:
-
在「新增自訂網域」區塊,輸入你的子網域(如
auth.example.com、auth.us.example.com),並點擊「新增網域」。
-
複製表格中的 CNAME 值
domains.logto.app,到你的網域 DNS 供應商新增紀錄。
-
等待驗證與 SSL 配置完成。
- 系統會每 10 秒自動驗證一次紀錄,直到自訂網域新增完成。請確保輸入的網域名稱或 DNS 紀錄正確。
- 驗證通常只需數分鐘,視 DNS 供應商而定,最長可能需 24 小時。過程中可自由瀏覽其他頁面。
如需新增多個自訂網域,僅需重複上述步驟即可。
疑難排解
SSL 憑證問題
若設定自訂網域時遇到 SSL 憑證問題,可能與 DNS 設定中的 CAA 紀錄有關。CAA 紀錄用於指定哪些憑證授權單位(CA)可為你的網域簽發憑證。若你有設置 CAA 紀錄,請務必授權 "letsencrypt.org" 與 "pki.goog",以便 Logto 簽發 SSL 憑證。
如需排查與解決 CAA 相關的 SSL 憑證問題,請參閱 Cloudflare 官方文件。
「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 託管網域出現連線逾時(錯誤碼 522)
若你的網域託管於 Cloudflare,請將 CNAME 紀錄的 Cloudflare 代理(Proxy)功能關閉。
設定自訂網域後出現「Redirect URI does not match」錯誤
若新增自訂網域後出現「redirect URI does not match」錯誤,請將 SDK 設定中的 endpoint 改為自訂網域。
關於「主要網域」:
Logto 並無獨立的「主要網域」設定。新增自訂網域後,你的自訂網域與預設 {tenant-id}.logto.app 網域皆可用。實際驗證 (Authentication) 流程會依你在 SDK endpoint 參數設定的網域為主。
解決方式:
將 SDK 初始化時的 endpoint 參數改為你的自訂網域:
const client = new LogtoClient({
endpoint: 'https://auth.example.com', // 使用你的自訂網域
appId: 'your-app-id',
// ... 其他選項
});
同時請確認 Console → 應用程式 中註冊的 redirect URI 與你使用的網域一致。
注意: Logto 會自動為你的自訂網域配置與管理 SSL 憑證,無需自行設定。
使用自訂網域
完成設定後,你的自訂網域與預設 Logto 網域皆可用於租戶。不過,需進行部分設定才能啟用自訂網域。
本文假設你的自訂網域為 auth.example.com。
更新應用程式的 SDK 端點
請將 Logto SDK 初始化程式碼中的 endpoint 網域名稱修改為自訂網域。
const client = new LogtoClient({
...,// 其他選項
endpoint: 'https://auth.example.com',
});
於 Console > 應用程式 的應用程式詳細頁面,捲動至「端點與憑證」區塊,切換網域下拉選單以檢視並複製對應端點,更新你的應用程式設定。
修改其他應用程式的驗證端點
若你的應用程式未使用 Logto SDK,請將其驗證端點更新為自訂網域。
你可於 well-known URL 查詢驗證端點:
https://auth.example.com/oidc/.well-known/openid-configuration
更新社交連接器的 redirect URI
社交連接器 採用 OIDC/OAuth 協議。使用者透過自訂網域登入時,redirect URI 會自動使用該網域。你需至社交平台開發者後台更新 redirect URI。
步驟:
- 前往 Console > 連接器 > 社交連接器 並選擇你的連接器。
- 複製連接器詳情頁顯示的 redirect URI。Logto 會列出所有已設定自訂網域的可用 redirect URI。
- 將該 redirect URI 加入社交平台開發者後台(如 Google、GitHub、Facebook)。
多個自訂網域時:
- 請為每個自訂網域都新增對應的 redirect URI,確保無論使用者從哪個網域登入都能正常社交登入。
- 預設 Logto 網域(
*.logto.app)仍然有效,僅當你希望支援預設網域登入時才需加入。 - GitHub 連接器請使用 GitHub Apps(而非 GitHub dashboard 的 OAuth apps),因 GitHub Apps 支援多個 redirect URI,OAuth apps 僅支援單一 redirect URI。
更新 OIDC 企業級單一登入 (SSO) 連接器的 redirect URI
OIDC 企業級連接器 與社交連接器設定方式相同。
步驟:
- 前往 Console > 企業級單一登入 (Enterprise SSO) 並選擇你的 OIDC 連接器。
- 複製連接器詳情頁的 redirect URI。Logto 會列出所有自訂網域的可用 redirect URI。
- 將該 redirect URI 更新至你的身分提供者 (IdP) 設定中。
多個自訂網域時: 請將所有對應的 redirect URI 加入 IdP,確保企業級單一登入 (SSO) 可於所有網域運作。
更新 SAML 企業級單一登入 (SSO) 連接器的 ACS URL
SAML 企業級連接器 使用 Assertion Consumer Service (ACS) URL 取代 redirect URI。
步驟:
- 前往 Console > 企業級單一登入 (Enterprise SSO) 並選擇你的 SAML 連接器。
- 在「於 IdP 設定」區塊,透過網域下拉選單切換自訂網域。
- 複製你要支援的網域的 ACS URL。
- 將這些 ACS URL 加入 SAML 身分提供者設定。
重要: 你選擇的網域會決定使用者 SSO 驗證 (Authentication) 後被導向的位置。請依應用程式預期接收 SAML 回應的網域進行設定。
MFA 的 Passkey
多重要素驗證 (MFA) 的 Passkey 綁定於註冊時的網域。使用者必須透過相同網域登入才能使用該 Passkey。
目前限制:Logto 尚未支援跨網域 Passkey 驗證 (Authentication)。若使用者於 auth.us.example.com 註冊 Passkey,則必須透過 auth.us.example.com 登入才能使用該 Passkey。於一個網域註冊的 Passkey 無法於其他自訂網域登入時使用。