本文将介绍如何获取鉴权文件、以及在线鉴权的实现方案。
鉴权文件是软件使用权的凭证,包含以下特征:
在线鉴权,是指用户的客户端访问 ZegoEffects 服务端,申请鉴权文件,进行网络验证的方式。从客户的角度来看可以通过在线鉴权快速,安全的通过网络验证,相比离线鉴权更可控更高效。
在线鉴权只是获取鉴权文件 License,只有通过 SDK 鉴权校验的客户端,才可以使用 ZegoEffects SDK 和 AI 功能。
ZEGO 建议您在业务层上,定时拉取、更新在线鉴权的 License 数据,避免出现本地缓存 License 数据过期、导致校验不通过的问题。
在线鉴权有两种方式,开发者可以通过自己的客户端,或自己的业务服务端访问 ZegoEffects 服务端,进行鉴权。
以下将介绍“向 ZegoEffects 服务端请求鉴权文件”的两种方式:通过客户端发送请求
和通过开发者服务端发送请求
,对比如下:
类别 | 通过客户端发送请求 | 通过开发者服务端发送请求 |
---|---|---|
实现步骤 |
|
|
流程图 |
||
优势 |
|
|
开始实现鉴权之前,请在 ZEGO 控制台 创建项目,获取到了接入 ZegoEffects SDK 服务所需的 AppID 和 AppSign,详情请参考 控制台 - 项目管理 中的“项目信息”;并联系 ZEGO 技术支持,开通 ZegoEffects 相关套餐服务权限。
以下分别介绍向 ZegoEffects 服务端请求鉴权文件的两种方式(二选一即可)。
客户端向 ZegoEffects SDK 申请授权。
调用 getAuthInfo 接口,传入申请到的 AppSign,获取授权信息;ZegoEffects SDK 会返回授权信息 AuthInfo 到客户端。
NSString* authInfo = [ZegoEffects getAuthInfo:appSign];
客户端向 ZegoEffects 服务端请求鉴权文件。
客户端拿到 ZegoEffects SDK 返回的授权信息 AuthInfo 后,构造消息体,发送请求到 ZegoEffects 服务端,申请鉴权文件。消息体结构如下:
URL: https://aieffects-api.zego.im?Action=DescribeEffectsLicense
请求方法: GET
内容格式: JSON
参数:
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
AppId | unsigned int | 是 | 鉴权的唯一标识,请联系 ZEGO 商务人员获取。 |
AuthInfo | string | 是 | 加密数据,由 SDK 产生的设备相关标识,通过 getAuthInfo 接口获得。 |
消息示例:
curl -X GET https://aieffects-api.zego.im?Action=DescribeEffectsLicense&AppId=xxxxxxxx&AuthInfo=xxxxxxxx
开发者服务端通过公共网关接口,构造消息体,直接发送请求到 ZegoEffects 服务端,申请鉴权文件。消息体结构如下:
URL:https://aieffectscgi-api.zego.im?Action=CgiDescribeEffectsLicense
请求方法: GET
内容格式: JSON
参数:
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
AppId | unsigned int | 是 | 鉴权的唯一标识,请联系 ZEGO 商务人员获取。 |
Signature | string | 是 | 签名,签名的生成请参考 服务端 API v2 - 调用方式 中的 “3 签名机制”。 |
SignatureNonce | string | 是 | 随机字符串。 |
SignatureVersion | string | 是 | 签名版本号,默认值为 2.0。 |
Timestamp | string | 是 | Unix 时间戳,单位为秒。最多允许 10 分钟的误差。 |
消息示例:
curl -X GET https://aieffectscgi-api.zego.im?Action=CgiDescribeEffectsLicense&AppId=1&Signature=1302668869d55ab3f6114af4ba6e5580&SignatureNonce=3f15d0b95f6e480b&SignatureVersion=2.0&Timestamp=1635940599
服务端返回的消息示例如下:
{
"Code": 0,
"Message": <message>,
"Data": {
"License": <license>
}
}
License
中携带信息即为鉴权文件的内容。Code
会返回错误码,Message
为对应的错误信息。根据请求方式的不同,返回字段中的 Code
取值也不相同,具体解释如下:
参数名 | 类型 | 说明 | |
---|---|---|---|
Code |
unsigned int32 |
通过客户端发送请求时,ZegoEffects 服务端返回的错误码,取值如下:
|
通过开发者服务端发送请求时,ZegoEffects 服务端返回的错误码,取值如下:
|
Message |
string |
返回的提示信息,和 “Code” 的取值相对应。
|
返回的提示信息,和 “Code” 的取值相对应。
|
Data |
object |
“Code” 为 0 时,返回鉴权文件的内容。 |
其中,返回字段 Data :
参数名 | 类型 | 说明 |
---|---|---|
License | string | 鉴权文件的内容。 |
将获取的鉴权文件设置到 SDK 中,以激活相关功能模块。
开发者需要从返回字段 “Data” 的 “License” 字段中获取鉴权文件内容,然后调用 create 接口,并将鉴权文件传给 ZegoEffects SDK,创建 Effects 对象。
// 创建 Effects 对象前,请先调用 setResources 接口导入资源和模型
// 传入鉴权文件,创建 Effects 对象
NSString* license = @"xxxxxxxx";
ZegoEffects* effects = [ZegoEffects create:license];
在调用 create 接口创建 Effects 对象之前,需要先调用 setResources 接口导入资源和模型。
联系我们
文档反馈