跳到主内容

概述

Casdoor 支持邀请制注册。管理员把注册页上的邀请码设为必填后,只有持有有效邀请码的用户才能注册。

添加邀请码到注册项

邀请码可以是 随机字符串(默认),也可以是匹配多个邀请码的 正则表达式。

邀请

邀请的属性​

每个邀请包含:

  • Organization:邀请所属的组织
  • Name:唯一的邀请名称
  • Display name:界面上显示的名称
  • Code:邀请码(普通字符串或正则表达式)
  • Default code:邀请链接中使用的值。随机邀请码时与 Code 相同;正则表达式时,必须设置一个能匹配该正则的值
  • Quota:最多可使用的次数
  • Used count:当前已使用次数
  • Application:可以使用这个邀请码的应用;ALL 表示组织内的所有应用。共享应用 会按组织单独处理
  • Username / Email / Phone:可选;用这个邀请注册时必须填写的固定值
  • Expire time — Optional time after which the code is rejected, in RFC 3339 format (e.g. 2026-12-31T23:59:59+08:00). Empty means the invitation never expires
  • State:邀请状态(例如 active、suspended)

默认邀请​

默认情况下,邀请码是随机的字母数字串,Quota 为 1(只能用一次)。 Application 为 ALL(组织内的所有应用)。

默认邀请

要把邀请绑定到特定用户,设置 Username、Email 或 Phone。如果这些字段为空,或者注册表单上没有显示,Casdoor 不会强制校验。

配置对应邀请码的用户信息

要允许多次使用,把 Quota 调大(例如 10)。要停止用这个邀请码注册新用户,把邀请的 State 设为 Suspended。

To make an invitation valid only for a limited time, set Expire time. After that time, signing up with the code fails with "Invitation code expired", without changing the State. Through the API, set expireTime in /api/add-invitation or /api/update-invitation.

邀请配额和状态

注意事项

如果邀请设置了 Username、Email 或 Phone,Quota 保持为 1。这些字段每个用户必须唯一,所以每个邀请只能注册一次。

基于正则表达式的邀请​

需要大量邀请码又不想逐个创建时,可以在 Code 中使用 正则表达式。例如把 Code 设为 [a-z]2333,任何匹配这个模式的邀请码(例如 a2333、b2333)都会被接受。

正则匹配邀请

备注

使用正则邀请码时,每个不同的匹配码只能用一次。 Quota 限制总使用次数。例如 Code = [a-z]2333、Quota = 2,表示用任意匹配码最多只能成功注册两次。

邀请链接​

可以复制某个邀请的邀请链接。链接中的邀请码来自 Default code;基于正则的邀请,要把 Default code 设为一个能匹配该正则的值。用户打开链接时,注册表单可以根据邀请预先填好。

对于 共享应用,生成的邀请链接会带上正确的 -org-{orgName} 后缀,确保注册在正确的组织中完成。

邀请链接

对应邀请链接的注册页面

通过 OAuth 提供商注册​

除了密码注册,邀请码也适用于基于 OAuth 的注册(例如 "Sign in with Google")。用户带着有效邀请码完成 OAuth 注册时:

  • 邀请码和邀请名称会记录在用户上。
  • 如果邀请配置了 signup group,用户会被加入该群组,优先于 OAuth 提供商本身设置的默认群组。
  • 用户创建成功后,邀请的 Used count 会加一。

这样即使用户通过第三方 OAuth 提供商注册,也能用邀请链接控制群组归属。

演示​