产品文档 直播技术文档 直播进教室签名的计算

直播进教室签名的计算

概述

百家云为客户开发者提供了多种进入【教室/直播间】的方式,包括拼接url从web端进入,js-sdkios-sdkandroid-sdk等。 不同的sdk进教室时,除了传必要的教室ID及用户信息外,都需要计算一个签名值(sign)。为了提高对接集成效率,还请您认真、仔细的阅读以下进教室签名的计算方法。

参与签名计算的必填字段

不同端进入教室的参数都有自己的命名规则,以下字段为服务端参数命名,因为签名的认证在服务端进行,所以所有端的计算签名参数都需要按照服务端的参数来计算;

  • room_id 教室号
  • user_number 用户number号,必须为数字,不带符号的正整数
  • user_role 用户角色 0:学生 1:老师 2:助教
  • user_name 用户昵称 字符串
  • user_avatar 用户头像url ,必须传http/https开头的绝对路径;如果没有头像可以给空,系统会自动分配一个。

注:如果是分组直播的学生或助教,进教室参数需要带上group_id字段,因此计算签名的字段也应该包含group_id字段,group_id为正整数。

各端参数对应说明

计算签名参数(服务端) 类型 是否必填 web端(js-sdk) IOS-sdk Android-sdk 描述
room_id string room_id roomID roomId 教室/直播间ID
user_number int user_number userNumber userNumber 可传客户账号体系下的用户ID号,不带符号的正整数
user_name string user_name userName userName 显示的用户昵称
user_role int user_role userRole userType 0:学生 1:老师 2:管理员
user_avatar string user_avatar userAvatar userAvatar 用户头像,传url
group_id int group_id groupID groupId 分组号,默认0不分组,只有分组直播才用到

签名计算规则

进教室签名的计算方式与直播服务端API接口中计算方式相同,即:

  • 将请求参数按key字典顺序(ASCII值大小)升序排序。
  • 将排好序的参数接成key1=value1&key2=value2&...&keyN=valueN
  • 将以上拼好的串最后面再拼上&partner_key=<partner_key>,其中<partner_key>替换成客户账号中的具体值。
  • 对以上拼好的串计算一个32位小写的md5值,即得到了签名。

示例:

room_id=18090462451266
user_number=187
user_role=0
user_name=test
user_avatar=https://img.baijiayun.com/0bjcloud/live/avatar/v2/121.jpg

partner_key=QewbUmVKwwhXeGxpeKkREpCvJPORi6yqQad8gZaIQ+5/UN2byOSJi5CQgqA9ujjK/jkDbD/rEBp8vYPBzE4Jb9OfPkPOTDHsMoOKa1DWu2oFe2tj11IQXbnZkSBy+nql

将以上参数排序后的顺序为:

room_id
user_avatar
user_name
user_number
user_role

按以上顺序拼接的字符串为:

room_id=18090462451266&user_avatar=https://img.baijiayun.com/0bjcloud/live/avatar/v2/121.jpg&user_name=test&user_number=187&user_role=0

再拼上partner_key后的字符串为:

room_id=18090462451266&user_avatar=https://img.baijiayun.com/0bjcloud/live/avatar/v2/121.jpg&user_name=test&user_number=187&user_role=0&partner_key=QewbUmVKwwhXeGxpeKkREpCvJPORi6yqQad8gZaIQ+5/UN2byOSJi5CQgqA9ujjK/jkDbD/rEBp8vYPBzE4Jb9OfPkPOTDHsMoOKa1DWu2oFe2tj11IQXbnZkSBy+nql

最后算出来32位的小写的md5值为:

5a54875000f29ff221b9d0ac622b3875