身份赋予功能
优质
小牛编辑
137浏览
2023-12-01
第三方身份赋予功能模块
- 自定义授权,用户将频道改为自定义授权模式,并设定好自定义地址,访客进入观看页后会先跳转到自定义网址,完成身份赋予后再跳转回来
- 第三方身份赋予密钥,用户在“媒体中心 ——> 基础配置”栏生成密钥后,用以给传输的数据加密
- 身份赋予接口,用户调用接口传输密文,完成身份赋予
- 用户得到带有识别码的Cookie,并跳转到指定网址
第三方身份赋予接口
GET /hubuser/api/assign_user?key=xxxxxxxxxx&return=xxxxxxx
JSON(加密前)
{
"user_id": "xxx",
"name": "xxx",
"avatar": "xxx",
"third_party_id": "xxx",
"allow_activities": ["xxx", "xxx", "xxx"],
"expire": ***
}
- RESPONSE:
JSON
{
"errcode": 2019
}
参数明细:
- user_id: 媒体中心的用户id,可不传,如果为空,默认按当前登录的用户,如果当前没有登陆,新建一个访客
- name: 昵称 ,可不传
- avatar: 用户头像,可不传
- third_party_id: 第三方的id,可不传
- allow_activities: ["xxx", "xxx", "xxx"]为当前用户新增频道访问权限(例:频道id为'ABCDEF'的频道使用了第三方登录授权,在调用身份赋予接口时,如传入的user_id为空(用户为新增),则需要传入数据:['ABCDEF'],否则新增的用户无频道访问权限,无法完成第三方授权)
expire: 过期时间戳,不传永久有效,传了之后会做过期校验(例:设定2020-12-31 23:59:59为过期时间, 2020-12-31 23:59:59转为秒级时间戳:1609430399,传入参数为1609430399)
key: 数据加密后的密文,为bas64格式的字符串
return: 身份赋予成功后,重定向的url地址,若该参数为空,则返回到首页
errcode: 若身份赋予失败,返回错误码
加密方式
- 第三方用户从 “媒体中心 ——> 基础配置”取到“第三方身份密钥”(目前暂定密钥长度为16)。
- 用 AES/CBC + PKCS7Padding(块长度为 16)) 的方式,利用密钥对json数据进行加密,AES加密时用到iv(初始向量)为16个字节的0(数字0)。
- 将加密后的字节流转成base64格式的字符串。(注意:有的第三方库在加密的时候,会自动进行base64编码!)
- 对密文进行urlencode,以替换其中的不安全字符。
- 调用企播提供的接口,并附上密文。