使用者名稱政策 (Username policy)
Logto 始終強制執行一組基本的使用者名稱規則:使用者名稱僅能包含字母、數字與底線(_),不得以數字開頭,且長度不得超過 128 個字元。在此基礎上,你可以設定使用者名稱政策,進一步限制終端使用者可選擇的使用者名稱,例如:使使用者名稱不區分大小寫、縮小長度範圍,或限制允許的字元類型。
Logto 會根據使用者名稱的建立或更新方式,以不同方式套用使用者名稱政策:
- 終端使用者流程(如 內建登入體驗、Account API 及 Account Center)始終強制執行目前的使用者名稱政策。使用者會在使用者名稱頁面看到政策要求,若輸入的使用者名稱違反政策,會即時收到錯誤提示。
- 透過 Management API 執行的管理員操作(例如
POST /api/users)則不受政策限制,只套用基本規則,讓你在需要時可不經政策檢查進行使用者佈建或遷移。
更新政策不會修改或使現有使用者名稱失效:即使現有使用者名稱不再符合新政策,使用者仍可繼續以原有名稱登入。
設定使用者名稱政策
設定使用者名稱政策,請依下列步驟操作:
- 前往 Console > 登入與帳號 > 註冊與登入 (Sign-up and sign-in) 頁面。
- 在 進階選項 (Advanced options) 區塊,點擊 管理 (Manage) 於 使用者名稱政策 (Username policy) 欄位。
可設定的選項如下:
- 區分大小寫 (Case sensitive):是否將僅大小寫不同的使用者名稱(如
Alice與alice)視為不同名稱。預設啟用。若停用,使用者可用任意大小寫登入,且新名稱若與現有名稱不區分大小寫時會被拒絕。 - 長度 (Length):設定允許的最小與最大字元數,範圍為 1 至 128(依基本規則)。
- 允許字元 (Allowed characters):選擇可包含的字元類型:大寫字母(
A-Z)、小寫字母(a-z)、數字(0-9)、底線(_)。至少需啟用大寫字母、小寫字母或底線其中之一,因為基本規則不允許使用者名稱以數字開頭。
切換為不區分大小寫的使用者名稱
將現有租戶從區分大小寫切換為不區分大小寫的使用者名稱時,必須確保不存在兩個名稱在不區分大小寫時相同(例如 Alice 與 alice 屬於不同使用者)。若存在此類衝突,儲存政策時會被 409 錯誤拒絕。
當你在 Console 關閉 區分大小寫 (Case sensitive) 時,Logto 會主動檢查並列出衝突的使用者名稱,讓你在儲存前先行處理(如重新命名或移除其中一個帳號)。你也可以直接透過 GET /api/sign-in-exp/username-policy/case-sensitivity-conflicts 查詢衝突。
相關資源
使用者資料:使用者名稱 (User data: username)電子郵件 / 電話 / 使用者名稱註冊 (Email / phone / username sign-up)
密碼政策 (Password policy)