用户封禁规则
描述
ZEGO 服务端提供了一套 用户封禁规则
接口,当开发者需要从业务后台直接管理用户的登录、推流等权限时,可以通过设置相关的封禁规则(例如通过用户的 IP 地址、UserId 等信息),直接封禁对应的用户,从而实现违规用户不能登录某些房间、或登录房间后不能开麦等功能。
开发者还可以查询已存在的封禁规则、删除过期或不适用的封禁规则,更好地维护业务秩序,保护用户权益,提升产品体验。
如需使用该功能,请联系 ZEGO 技术支持开启相关权限。
接口原型
方法名 | 请求方法 | 传输协议 | 调用频率限制(同一个 AppID 下所有房间) | 请求地址 |
---|---|---|---|---|
设置用户封禁规则 | GET | HTTPS | 10 次/秒 | https://rtc-api.zego.im/?Action=SetForbidUserRule |
查询用户封禁规则 | 1 次/秒 | https://rtc-api.zego.im/?Action=DescribeForbidUserRules | ||
删除用户封禁规则 | 10 次/秒 | https://rtc-api.zego.im/?Action=DelForbidUserRule |
使用步骤
下文详细介绍 用户封禁规则
接口的请求参数配置、响应参数说明。
设置用户封禁规则
当开发者需要封禁某些用户时,需要先通过 SetForbidUserRule
设置对应的用户封禁规则。
请求参数及请求示例
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表请参考 完整公共参数列表请参考 调用方式 中的 “公共请求参数”。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
RuleType | Int32 | 是 | 封禁规则类型:
其中,最多可设置的规则条数,指同时在有效期内的规则条数,不包含已失效的规则。 如果您不需要某些规则,请及时调用 删除用户封禁规则 接口进行清理。 |
IP | String | RuleType 取值为 1 时,该参数必填。 | IP 地址。 |
RoomId | String | RuleType 取值为 2、4 时,该参数必填。 | 房间 ID。 |
UserId | String | RuleType 取值为 3、4 时,该参数必填。 | 用户 ID。 |
DisabledPrivilege[] | Array of Int32 | 是 | 封禁用户所能使用的功能:
|
EffectiveTime | Int64 | 是 | 封禁规则有效时长,单位:秒,取值范围 1 ~ 86400(1 天)。 |
参数配置举例:
-
假设需要封禁的用户是 user1,未登录房间 room1:
- RuleType 取值为 1、DisabledPrivilege[] 取值为 1 时,表示该 IP 地址对应的用户无法登录任何房间。
- RuleType 取值为 2、DisabledPrivilege[] 取值为 1 时,表示任何用户都无法登录 room1。
- RuleType 取值为 3、DisabledPrivilege[] 取值为 2 时,表示 user1 可以正常登录到任何房间,但无法在任何房间内推流。
- RuleType 取值为 4、DisabledPrivilege[] 取值为 2 时,表示 user1 可以正常登录到 room1,但无法在 room1 内推流。
-
假设需要封禁的用户是 user1,且已登录房间 room1,无论 RuleType 取值如何:
- DisabledPrivilege[] 取值为 1 或 1&2 时,user1 仍在 room1 内、但无法正常推流,需要调用 踢出房间用户 接口踢出用户。
- DisabledPrivilege[] 取值为 2 时,user1 无法在 room1 内推流。
https://rtc-api.zego.im/?Action=SetForbidUserRule
&RuleType=2
&RoomId=room1
&DisabledPrivilege[]=1&DisabledPrivilege[]=2
&EffectiveTime=1800
&<公共请求参数>
响应参数及响应示例
参数 | 类型 | 描述 |
---|---|---|
Code | Int32 | 返回码。 |
Message | String | 操作结果描述。 |
RequestId | String | 请求 ID。 |
Data | Object | 响应数据。 |
└ ExpireTime | Int64 | 封禁规则的过期时间,Unix 时间戳,单位:秒。 |
{
"Code": 0,
"Message": "success",
"RequestId": "TestRequestId1675674022729915000",
"Data": {
"ExpireTime": 1704282648
}
}
查询用户封禁规则
设置规则成功后,通过 DescribeForbidUserRules
了解当前已存在的用户封禁规则。
调用 DescribeForbidUserRules
接口,可以查询到当前处于有效期内的规则,也可以查询到已失效的规则。请注意,ZEGO 会不定期清理数据库中的已失效的封禁规则,调用本接口查询得到的失效规则列表可能不完整。
请求参数及请求示例
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表请参考 完整公共参数列表请参考 调用方式 中的 “公共请求参数”。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
RuleType | Int32 | 是 | 需要查询的封禁规则类型:
|
https://rtc-api.zego.im/?Action=DescribeForbidUserRules
&RuleType=2
&<公共请求参数>
响应参数及响应示例
参数 | 类型 | 描述 |
---|---|---|
Code | Int32 | 返回码。 |
Message | String | 操作结果描述。 |
RequestId | String | 请求 ID。 |
Data | Object | 响应数据。 |
└ RuleList | Array of Object | 用户封禁规则列表,详情可见RuleList。 |
RuleList
参数 | 类型 | 描述 |
---|---|---|
RuleType | Int32 | 封禁规则类型:1:通过 IP 地址封禁用户。2:通过 RoomId 封禁用户。3:通过 UserId 封禁用户。4:通过 RoomId 和 UserId 封禁用户。 |
IP | String | IP 地址。RuleType 为 1 时,该参数有值。 |
RoomId | String | 房间 ID。RuleType 为 2、4 时,该参数有值。 |
UserId | String | 用户 ID。RuleType 为 3、4 时,该参数有值。 |
DisabledPrivilegeList | Array of Int32 | 规则封禁用户所能使用的功能:1:登录2:推流 |
ExpireTime | Int64 | 用户封禁规则的过期时间,Unix 时间戳,单位:秒。 |
{
"Code": 0,
"Message": "success",
"RequestId": "TestRequestId1675674022729915000",
"Data": {
"RuleList": [
{
"RuleType": 2,
"IP": "",
"RoomId": "room1",
"UserId": "",
"DisabledPrivilegeList": [
1,
2
],
"ExpireTime": 1704282648
},
{
"RuleType": 2,
"IP": "",
"RoomId": "room2",
"UserId": "",
"DisabledPrivilegeList": [
1
],
"ExpireTime": 1704282648
}
]
}
}
响应结果中,Code 为 0 表示查询成功,不为 0 表示查询失败,请参考 4 返回码 进行处理。
删除用户封禁规则
当某些用户封禁规则失效、无用或规则总条数超过上限时,可以通过 DelForbidUserRule
删除用户封禁规则。
每个 RuleType 所支持设置的最大条数限制不同,如果您不需要某些规则,请及时调用本接口进行清理。此外,ZEGO 也会不定期清理数据库中的已失效的封禁规则。
请求参数及请求示例
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表请参考 完整公共参数列表请参考 调用方式 中的 “公共请求参数”。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
RuleType | Int32 | 是 | 所需删除的封禁规则类型:
|
IP | String | RuleType 取值为 1 时,该参数必填。 | IP 地址。 |
RoomId | String | RuleType 取值为 2、4 时,该参数必填。 | 房间 ID。 |
UserId | String | RuleType 取值为 3、4 时,该参数必填。 | 用户 ID。 |
https://rtc-api.zego.im/?Action=DelForbidUserRule
&RuleType=2
&RoomId=room1
&<公共请求参数>
响应参数及响应示例
参数 | 类型 | 描述 |
---|---|---|
Code | Int32 | 返回码。 |
Message | String | 操作结果描述。 |
RequestId | String | 请求 ID。 |
{
"Code": 0,
"Message": "success",
"RequestId": "TestRequestId1675674022729915000"
}
返回码
以下仅列出了接口业务逻辑相关的部分返回码,完整返回码请参考 全局返回码。
返回码 | 说明 | 处理建议 |
---|---|---|
0 | 请求成功。 | - |
1 | 请求失败。 | 请联系 ZEGO 技术支持处理。 |
2 | 输入参数错误。 | - |
9 | 未开通当前接口的使用权限。 | 请联系 ZEGO 技术支持处理。 |
206 | App 请求 QPS 过高被限制。 | 降低请求频率,或联系 ZEGO 技术支持提高 QPS 限制阈值。 |
50123 | 当前处于有效期内的封禁规则条数超过限制。 | 请减少规则条数。 |