概述
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 提供商注册,也能用邀请链接控制群组归属。