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

直播进教室签名的计算

百家云给开发者提供了多种进入教室的方式,包括拼url从web端进入,js-sdkios-sdkandroid-sdk等。

不同的sdk进教室时,除了传必要的教室号及用户信息外,都需要计算一个签名值。以下介绍进教室签名的计算方法。

参与签名计算的字段

  • room_id 教室号
  • user_number 用户number号,必须是数字
  • user_role 用户角色 0:学生 1:老师 2:助教
  • user_name 用户昵称 字符串
  • user_avatar 用户url 如果没有头像可以给空

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

签名计算方法

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

  • 将参与签名计算的参数按key进行排序。
  • 将排好序的参数接成key1=value1&key2=value2&...&keyN=valueN
  • 将以上拼好的串后面再拼上&partner_key=<partner_key>,其中<partner_key>替换成具体值。
  • 对以上拼好的串算一个32位md5值(小写),即得到了签名。

例如:

room_id=1234567890
user_number=123
user_role=0
user_name=张三
user_avatar=

partner_key=djPHgEvaDx6GQRZj/lt93dwtbXvIVdieVpaBiZJNnPTrtyYFgrB6CBDHV/LqNi792cJDa

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

room_id
user_avatar
user_name
user_number
user_role

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

room_id=1234567890&user_avatar=&user_name=张三&user_number=123&user_role=0

再拼上partner_key后的字符串为:

room_id=1234567890&user_avatar=&user_name=张三&user_number=123&user_role=0&partner_key=djPHgEvaDx6GQRZj/lt93dwtbXvIVdieVpaBiZJNnPTrtyYFgrB6CBDHV/LqNi792cJDa

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

19d51f44a2777ef3bb677d479c2a88c1