【发布时间】:2015-10-19 05:46:57
【问题描述】:
我想使用coturn with oAuth。如果我理解正确,我需要做两件事:
- 在 coturn 正在使用的数据库中存储 oAuth 令牌
- 发送
ACCESS-TOKEN和USERNAMESTUN 属性
第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?
如果没有 oAuth,我会像这样初始化我的 RTCPeerConnection:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'user',
'credential': 'password'
}]
};
var pc = new RTCPeerConnection(configuration)
WebRTC 1.0 draft 定义了一个 RTCIceCredentialType 枚举,所以我认为我需要像这样更改我的配置:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'kid',
'credential': 'oAuthToken',
'credentialType': 'token'
}]
};
使用 Wireshark 我看不到 ACESS-TOKEN 属性。有什么想法或有人知道一个可行的例子吗?
【问题讨论】:
-
您使用什么命令来启动 TURN 服务器?
-
turnserver -n -f -v -l stdout -a --oauth -r "myRealm" -J "myMongoConnection" -
我猜你在 TURN 服务器日志中收到
401错误 -
抱歉回复晚了。你是对的,错误是:
26: session 005000000000000001: realm <myRealm> user <my<user>: incoming packet message processed, error 401: Unknown error 26: check_stun_auth: user turn credentials are incorrect。我认为 coturn 在这里使用的是长期凭据,因为未发送ACCESS-TOKEN属性。 -
前两天我一直在尝试,遇到了类似的错误,但我没有设置 oauth,使用了 redis 服务器,并在其中手动添加了行
标签: oauth webrtc stun turn rfc5766turnserver