禁止公开注册 & 仅限邀请注册
在某些情况下,你可能希望限制应用程序的用户注册。Logto 允许你禁用匿名用户注册,并将用户登录限制为仅由管理员邀请的用户。
禁用用户注册
要禁用终端用户注册,请按照以下步骤操作:
- 进入 控制台 > 登录体验 > 注册与登录 页面。
- 在 高级选项 部分,关闭 启用用户注册 开关以禁用用户注册。(默认开启)
禁用用户注册后:
- 登录页面将移除“创建账户”链接。
- 注册页面被禁用,访问该页面的用户会被重定向到登录页面。
- 社交和企业单点登录 (SSO) 注册流程也会被禁用。未注册社交账号的用户在社交认证后会收到“未找到账户”错误。
- 对于系统中已存在匹配邮箱地址或手机号账户的用户,社交账号关联功能仍然可用。
实现仅限邀请注册流程
Logto 没有内置邀请注册流程。但你可以通过利用 Logto 的用户 Management API,轻松实现仅限邀请注册流程。
方案一:通过魔法链接邀请用户(推荐)
-
在 控制台 > 登录体验 中禁用用户注册。
-
进入 控制台 > 登录体验,关闭“启用用户注册”以关闭公开注册。
-
收集你想邀请的用户邮箱地址(例如通过你的网站或现有用户推荐)。
-
按照指南创建并发送魔法邀请链接(请求一次性令牌,拼接魔法链接,通过 Logto SDK 触发认证 (Authentication))。
注意:请为邀请链接设置过期时间。建议链接至少有效一天。使用以下请求体生成一次性令牌:{
"email": "[email protected]",
"expiresIn": 172800 // 可选。默认 600(10 分钟)
} -
将魔法链接发送到用户邮箱(如
https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
)。你可以自定义邮件模板,例如:当用户点击“接受邀请”时,即使公开注册已禁用,他们也会自动注册你的服务。这被称为“定向用户邀请”。
方案二:通过 Management API 邀请并创建用户
- 在 控制台 > 登录体验 中禁用用户注册。
- 在你的应用中创建自定义的基于邀请的用户注册表单。
- 向用户发送带有唯一邀请链接的邀请邮件。
- 用户点击注册链接后,让你的应用调用 Logto Management API > 创建用户 来创建用户账户。
- 用户账户创建后,将其重定向到 Logto 登录或重置密码页面以完成注册。关于自定义首屏和预填用户邮箱以优化登录流程,请参阅 认证参数。
方案三:手动注册后通知用户
- 在 Logto 控制台禁用用户注册。
- 在 控制台 > 用户管理 或通过 Management API 手动创建用户账户。
- 通过邮件通知用户其账户已创建。
- 将用户重定向到 Logto 登录或重置密码页面以完成注册。关于自定义首屏和预填用户邮箱以优化登录流程,请参阅 认证参数。
预注册账户的用户体验
预注册账户(也称为预配置用户)。在方案二和方案三中,用户账户通过 Management API 预先创建。终端用户随后首次登录你的产品。
当用户注册被禁用时,访问注册页面的用户会被重定向到登录页面。如果用户账户是由管理员或通过 Management API 创建的(如方案二或三),用户的登录体验会根据你配置的登录和注册方式有所不同:
- 通过验证码使用邮箱或手机号登录:用 邮箱地址 或 手机号 创建用户账户,并启用邮箱或手机号验证码登录方式。用户创建后,可直接用邮箱或手机号通过验证码认证 (Authentication) 登录。
- 通过特定邮箱或手机号的社交账号登录:用与社交账号关联的 邮箱地址 或 手机号 创建用户账户,并为特定社交提供商创建并启用社交连接。启用 自动账户关联 功能,根据匹配的邮箱或手机号自动将社交身份与用户账户关联。用户创建后,可直接用与邮箱或手机号匹配的社交账号登录。
- 用户名 / 邮箱 / 手机号 + 密码:用 用户名、邮箱地址 或 手机号 创建用户账户,并启用相应的密码登录标识符。
- 预设密码:在创建账户时设置密码,并安全地告知用户。用户可直接用用户名、邮箱或手机号和预设密码登录,并可自行重置密码。
- 无预设密码:创建账户时不设置密码,提示用户激活账户时设置密码。(密码重置流程需有 邮箱地址 或 手机号。)创建用户后,将其重定向到带预填邮箱或手机号的重置密码页面。关于如何带预填信息重定向到重置密码页面,请参阅 认证参数。用户设置新密码后,即可用用户名、邮箱或手机号和新密码直接登录。