用户鉴权(v2.0)

本文介绍如何进行用户鉴权。

简介

聚联云 SDK 提供三种鉴权机制:App ID 鉴权、Token鉴权、业务回调鉴权。这三种鉴权机制的区别如下:

image

鉴权方式配置方式鉴权机制Token 生成服务器业务鉴权回调服务器适用场景
App ID 鉴权激活项目聚联云检查App ID不需要不需要安全性要求低的场景
Token 鉴权激活项目
启用证书
聚联云根据检查 Token需要不需要安全性要求高的场景,如登录音视频服务
业务回调鉴权激活项目
启用证书
配置业务鉴权回调地址
聚联云将鉴权请求回调给业务服务器需要需要安全性要求极高的场景,如音视频上行

项目 与 App ID

每个 聚联云 的项目都有一个项目ID(App ID),它是项目的唯一标识。

创建项目

请确保你在 聚联云个人中心 完成注册,并创建了项目。一个用户可以创建多个项目。

激活项目

点击 聚联云个人中心/项目管理 查看你所创建的项目详情。新建项目需要被激活。处于激活状态的项目的 App ID 才是有效的,能够用于 App ID 鉴权。

获取 App ID

点击 聚联云个人中心/项目管理 查看你所创建的项目详情。在项目详情页,你可以查看你的 App ID。

使用 App ID

聚联云 SDK API 和 RESTful API 需要你填入App ID,用以区分不同的项目。

Token

Token 是用户的凭证,比使用 App ID 校验更复杂更安全。使用 App ID 和 App 证书来生成一个 Token。

启用 App 证书

点击 聚联云个人中心/项目管理 查看你所创建的项目详情。在项目详情页,你可以启用 App 证书。App 证书用来和 App ID 生成 Token。

Token格式

Token 是相比 App ID 更为复杂,也更为安全的校验方式。你需要使用 App ID 和 App 秘钥来生成一个 Token。

Token格式如下:

字段格式字段名称说明
int32TokenVersionToken版本字段
int32TokenLen整个Token的字节长度,包括TokenLen 字段和 DigitalSignature 字段
int32App ID项目ID
int16uidLenuid长度
Stringuid在项目内唯一的用户ID
int16parameterLen权限参数键值对的个数,下面的key/value可以有多个
int16key长度key的字节长度
Stringkeykey的内容
int16value长度value的字节长度
Stringvaluevalue的内容
int16privileges各项权限的键值对个数
int16key长度key的字节长度
Stringkeykey的内容
int64valuevalue的字节内容
int64buildTimestampMills生成Token的UTC时间(1970年以来),单位毫秒
int32ValidTimeToken 的有效时长,单位秒
20 BytesDigitalSignature数字签名

注意:

  • 多字节整数使用网络字节序,即大端。

  • Token的过期时间 = Timestamp + ValidTime * 1000, UTC时间(1970年以来),单位毫秒。

  • 数字签名:采用hmac-sha1算法对 DigitalSignature 字段前的所有数据运算生成,运算所需key为App 秘钥,App 秘钥可以从 聚联云个人中心/项目管理 页面获取。

  • 因为Token要通过http传递,所以需对整个Token进行url安全的base64编码,注意不是对整个base64进行url encode。

鉴权请求格式

媒体周期鉴权服务器接收并处理http鉴权请求,http字段说明如下:

字段说明
请求方法POST
HeadContent-Type: application/json;charset=UTF-8
请求内容json字符串(格式见下表)

请求内容 json 字段说明:

字段说明类型
appId项目Id32位无符号整型
roomId频道名字符串类型
uid用户ID字符串类型
ip用户IP(点分十进制)字符串类型
auth鉴权类型,见 鉴权类型表32位无符号整型
sendTime请求鉴权时间,UTC时间(1970年以来),单位毫秒64位无符号整型
session鉴权代理会话ID字符串类型
tokenToken字符串类型

业务服务器鉴权http响应说明

业务鉴权服务器响应鉴权请求。

字段说明
http状态码200 执行成功
响应头application/json
响应内容json字符串(格式见下表)

响应内容 json 字段说明:

字段说明类型
code响应编码,见 鉴权响应编码表32位无符号整型
message描述字符串类型
session鉴权代理会话ID,同请求内容的session字段字符串
expire鉴权结果失效时间点,UTC时间(1970年以来),单位秒32位无符号整形

注意:通过expire可以控制鉴权请求周期。

鉴权响应编码表

编码说明备注
0成功成功
10000app token 接口系统错误服务器内部错误,可以重试
10001app token 不存在app token 不存在
10002app token 校验失败app token 校验失败
10003appid 参数不合法请求参数与token中的appid不一致
10004uid 参数不合法请求参数与token中的uid不一致
10005app token 过期app token 过期
10006app不存在app不存在
10007token即将要过期token 在30s内过期
10008用户被封禁用户被封禁
10009参数异常参数异常

鉴权类型表

名称编码说明
AUTH_AUDIO_STREAM_SEND65538语音流上行
AUTH_VIDEO_STREAM_SEND131074视频流上行

文档是否有解决您的问题?

有帮助 没帮助
提交成功,非常感谢您的反馈!

反馈

TOP
<