@@ -145,29 +145,46 @@ private function __genSig($identifier, $expire, $userbuf, $userbuf_enabled) {
145145
146146
147147 /**
148- * 生成签名
149- *
150- * @param $identifier 用户账号
151- * @param int $expire 过期时间,单位秒,默认 180 天
152- * @return string 签名字符串
153- * @throws \Exception
154- */
155- public function genSig ($ identifier , $ expire =86400 *180 ) {
156- return $ this ->__genSig ($ identifier , $ expire , '' , false );
148+ *【功能说明】用于签发 TRTC 和 IM 服务中必须要使用的 UserSig 鉴权票据
149+ *
150+ *【参数说明】
151+ * userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
152+ * expire - UserSig 票据的过期时间,单位是秒,比如 86400 代表生成的 UserSig 票据在一天后就无法再使用了。
153+ * 返回string 签名字符串
154+ * @throws \Exception
155+ */
156+ public function genUserSig ($ userid , $ expire =86400 *180 ) {
157+ return $ this ->__genSig ($ userid , $ expire , '' , false );
157158 }
158159
159160 /**
160- * 带 userbuf 生成签名。
161- * @param $identifier 用户账号
162- * @param int $expire 过期时间,单位秒,默认 180 天
163- * @param string $userbuf 用户数据
164- * @return string 签名字符串
165- * @throws \Exception
166- */
167- public function genSigWithUserBuf ($ identifier , $ expire , $ roomnum ,$ privilege ) {
168- $ userbuf = $ this ->__genUserBuf ($ identifier ,$ roomnum ,$ expire_time ,$ privilege ,0 );
161+ *【功能说明】
162+ * 用于签发 TRTC 进房参数中可选的 PrivateMapKey 权限票据。
163+ * PrivateMapKey 需要跟 UserSig 一起使用,但 PrivateMapKey 比 UserSig 有更强的权限控制能力:
164+ * - UserSig 只能控制某个 UserID 有无使用 TRTC 服务的权限,只要 UserSig 正确,其对应的 UserID 可以进出任意房间。
165+ * - PrivateMapKey 则是将 UserID 的权限控制的更加严格,包括能不能进入某个房间,能不能在该房间里上行音视频等等。
166+ * 如果要开启 PrivateMapKey 严格权限位校验,需要在【实时音视频控制台】=>【应用管理】=>【应用信息】中打开“启动权限密钥”开关。
167+ *
168+ *【参数说明】
169+ * userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
170+ * expire - PrivateMapKey 票据的过期时间,单位是秒,比如 86400 生成的 PrivateMapKey 票据在一天后就无法再使用了。
171+ * roomid - 房间号,用于指定该 userid 可以进入的房间号
172+ * privilegeMap - 权限位,使用了一个字节中的 8 个比特位,分别代表八个具体的功能权限开关:
173+ * - 第 1 位:0000 0001 = 1,创建房间的权限
174+ * - 第 2 位:0000 0010 = 2,加入房间的权限
175+ * - 第 3 位:0000 0100 = 4,发送语音的权限
176+ * - 第 4 位:0000 1000 = 8,接收语音的权限
177+ * - 第 5 位:0001 0000 = 16,发送视频的权限
178+ * - 第 6 位:0010 0000 = 32,接收视频的权限
179+ * - 第 7 位:0100 0000 = 64,发送辅路(也就是屏幕分享)视频的权限
180+ * - 第 8 位:1000 0000 = 200,接收辅路(也就是屏幕分享)视频的权限
181+ * - privilegeMap == 1111 1111 == 255 代表该 userid 在该 roomid 房间内的所有功能权限。
182+ * - privilegeMap == 0010 1010 == 42 代表该 userid 拥有加入房间和接收音视频数据的权限,但不具备其他权限。
183+ */
184+ public function genPrivateMapKey ($ userid , $ expire , $ roomid ,$ privilegeMap ) {
185+ $ userbuf = $ this ->__genUserBuf ($ userid ,$ roomid ,$ expire ,$ privilegeMap ,0 );
169186 echo $ userbuf . "\n" ;
170- return $ this ->__genSig ($ identifier , $ expire , $ userbuf , true );
187+ return $ this ->__genSig ($ userid , $ expire , $ userbuf , true );
171188 }
172189
173190
0 commit comments