跳到主要内容

用户名策略

Logto 始终强制执行一组基础的用户名规则:用户名只能包含字母、数字和下划线(_),不能以数字开头,且长度不超过 128 个字符。在此基础上,你可以配置用户名策略,以进一步限制终端用户可选择的用户名,例如使用户名不区分大小写、缩小长度范围或限制允许的字符类型。

Logto 会根据用户名的创建或更新方式,以不同方式应用用户名策略:

  • 终端用户流程,如开箱即用的登录体验Account APIAccount Center 始终强制执行当前的用户名策略。用户会在用户名页面看到策略要求,并在输入的用户名不符合要求时获得内联错误提示。
  • 通过 Management API(例如 POST /api/users)进行的管理员操作不受策略限制,仅应用基础规则,这样你在需要时可以在不进行策略检查的情况下预配或迁移用户。

更新策略不会修改或使现有用户名失效:即使这些用户名不再被新注册接受,用户仍然可以继续使用当前用户名登录。

设置用户名策略

要配置用户名策略,请按照以下步骤操作:

  1. 进入 控制台 > 登录与账户 > 注册与登录 页面。
  2. 高级选项 部分,点击 用户名策略 字段的 管理

可用的设置如下:

  1. 区分大小写:是否将仅大小写不同的用户名(如 Alicealice)视为不同的用户名。默认启用。禁用后,用户可以使用任意大小写的用户名登录,并且新用户名如果与现有用户名在不区分大小写时冲突,将被拒绝。
  2. 长度:设置用户名允许的最小和最大字符数,范围在基础规则的 1 到 128 之间。
  3. 允许的字符:选择用户可以包含哪些字符类型:大写字母 (A-Z)、小写字母 (a-z)、数字 (0-9) 和下划线 (_)。至少要启用大写字母、小写字母或下划线中的一种,因为基础规则不允许用户名以数字开头。

切换为不区分大小写的用户名

将现有租户从区分大小写切换为不区分大小写的用户名,要求现有用户名在不区分大小写时不能发生冲突(例如,Alicealice 分别属于两个不同用户)。如果存在此类冲突,保存策略时会被拒绝并返回 409 错误。

当你在控制台关闭 区分大小写 时,Logto 会主动检查冲突并列出冲突的用户名,便于你在保存前解决(如重命名或删除其中一个账户)。你也可以通过 GET /api/sign-in-exp/username-policy/case-sensitivity-conflicts 直接查询冲突。

用户数据:用户名 邮箱 / 手机 / 用户名注册 密码策略