【发布时间】:2015-06-10 00:33:19
【问题描述】:
我正在尝试从here 为 webRTC 设置 rfc5766-turn-server TURN 服务器。
我能够使用我的用户名和密码 (my_user_name:my_password) 的 turnuserdb.conf 文件通过此 TURN 服务器成功转发我的视频。
在我使用的网络客户端:
"iceServers":{[
"url": "turn:my_user_name,@turn_server_ip",
"credential":"my_password"
}]
我正在尝试使用 TURN 服务器附带的 REST API 功能来避免通过网络发送密码或将其存储在客户端。 我在 Rest API 下关注了 this spec 和 this explanation
但不幸的是,我收到了 401 并且无法进行身份验证。
这就是我所做的:
-
我创建了一个秘密“my_secret”并像这样运行回合服务器:
turnserver -v --syslog -a -L xx.xxx.xx.xx -X yy.yyy.yyy.yy -E zz.zzz.zz.zzz --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --static-auth-secret=my_secret --realm=north.gov --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -q 100 -Q 300 --cipher-list=ALL(我只是把IP地址换成了
xx.xxx.xx.xxyy.yyy.yyy.yyzz.zzz.zz.zzz) -
后来我生成了一个现在 + 1 小时的时间戳,所以我在 nodejs 上运行:
Date.now()+1000*60*60; // output 1433895918506.我在this website上生成了临时密码, 使用我的秘密,得到了结果
0ca57806bdc696b3129d4cad83746945b00af77b -
我将密码编码为 base64。
-
现在我尝试使用临时用户名:
1433895918506:my_user_name和密码:MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg==,从 Web 客户端登录与转向服务器的通信,现在我在 Web 客户端上使用"iceServers":"url":"turn:1433895918506:my_user_name@turn_server_ip","credential":"MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg=="}]
但它不起作用,我明白了:
401 user <1433895918506:my_user_name> incoming packet message processed, error 401: Unauthorised.
你能帮我找出问题所在吗?
【问题讨论】:
标签: javascript rest authentication webrtc turn