用户名策略
Logto 始终强制执行一组基础的用户名规则:用户名只能包含字母、数字和下划线(_),不能以数字开头,且长度不超过 128 个字符。在此基础上,你可以配置用户名策略,以进一步限制终端用户可选择的用户名,例如使用户名不区分大小写、缩小长度范围或限制允许的字符类型。
Logto 会根据用户名的创建或更新方式,以不同方式应用用户名策略:
- 终端用户流程,如开箱即用的登录体验、Account API 和 Account Center 始终强制执行当前的用户名策略。用户会在用户名页面看到策略要求,并在输入的用户名不符合要求时获得内联错误提示。
- 通过 Management API(例如
POST /api/users)进行的管理员操作不受策略限制,仅应用基础规则,这样你在需要时可以在不进行策略检查的情况下预配或迁移用户。
更新策略不会修改或使现有用户名失效:即使这些用户名不再被新注册接受,用户仍然可以继续使用当前用户名登录。
设置用户名策略
要配置用户名策略,请按照以下步骤操作:
- 进入 控制台 > 登录与账户 > 注册与登录 页面。
- 在 高级选项 部分,点击 用户名策略 字段的 管理。
可用的设置如下:
- 区分大小写:是否将仅大小写不同的用户名(如
Alice和alice)视为不同的用户名。默认启用。禁用后,用户可以使用任意大小写的用户名登录,并且新用户名如果与现有用户名在不区分大小写时冲突,将被拒绝。 - 长度:设置用户名允许的最小和最大字符数,范围在基础规则的 1 到 128 之间。
- 允许的字符:选择用户可以包含哪些字符类型:大写字母
(A-Z)、小写字母(a-z)、数字(0-9)和下划线(_)。至少要启用大写字母、小写字母或下划线中的一种,因为基础规则不允许用户名以数字开头。
切换为不区分大小写的用户名
将现有租户从区分大小写切换为不区分大小写的用户名,要求现有用户名在不区分大小写时不能发生冲突(例如,Alice 和 alice 分别属于两个不同用户)。如果存在此类冲突,保存策略时会被拒绝并返回 409 错误。
当你在控制台关闭 区分大小写 时,Logto 会主动检查冲突并列出冲突的用户名,便于你在保存前解决(如重命名或删除其中一个账户)。你也可以通过 GET /api/sign-in-exp/username-policy/case-sensitivity-conflicts 直接查询冲突。