javascript - 使用 Twilio JS 客户端 API 时出现 JWT token 过期问题

标签 javascript python django twilio

我正在创建一个 webb 应用程序,人们可以单击一个号码并从浏览器中拨号。

我正在使用Twilio JS Client API以及用于生成功能 token 的 Django 后端。我正在使用这个Python Helper Library

一切似乎都工作正常,但当我尝试调用电话时,我的客户端出现错误:

Uncaught Twilio.Exception: 31205: [object Object] twilio.min.js:45

WebSocket is already in CLOSING or CLOSED state.

错误 31205 是一个 JWT token 过期错误,这很奇怪,因为当我点击拨号时, token 的生命周期最多为 1 分钟。

这是我在 Django 中的 View 方法,它生成一个很好的功能 token :

def dialer(req, phone_number):
    capability = TwilioCapability(settings.TWILIO_ACCOUNT_SID,
                                  settings.TWILIO_AUTH_TOKEN)
    # allow outgoing voice
    capability.allow_client_outgoing(settings.TWILIO_APP_SID)
    profile = user_models.UserProfile.objects.get(user=req.user)
    v = {'capability_token': capability.generate(expires=600),
         'phone_number': phone_number, 'user': req.user, 
         'caller_id': profile.user_phone}
    return shortcuts.render_to_response('dialer.html', v)

这是我 dialer.html 中的 JavaScript:

Twilio.Device.setup('{{capability_token}}'); 
Twilio.Device.ready( function(device) {
   console.log('Device ready...');
}); 
Twilio.Device.connect({
   CallerId:'{{caller_id}}',
   PhoneNumber: '{{phone_number}}'
});
$('#hang-up').click( function() {
   Twilio.Device.disconnectAll();
});

关于为什么我会收到此错误有什么想法吗? Twilio 文档表示,capability_token 的默认生命周期为一小时。

谢谢!

PS。我使用 Node.js 作为后端制作了完全相同的应用程序,效果很好:)

最佳答案

解决了!

所以代码没有任何问题。问题是我的虚拟机的日期/时间设置错误。

因此,当您尝试从 Twilio 检索功能 token 时,请确保这是正确的:)

关于javascript - 使用 Twilio JS 客户端 API 时出现 JWT token 过期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537869/

相关文章:

javascript - 主页横幅幻灯片无法正常运行

javascript - 从 Google Cloud Functions (JS) 中运行 Google Storage 命令

java - 我如何在 Java 中指定我自己的 Rhino 上下文?

python - Django 设置 ‘SECRET_KEY’ 的目的是什么?

python - 安装django后更改python版本

javascript - 如何在 w2ui 中使布局小部件扩展到完整高度?

python - 如何在多列上对 pandas 中的表进行透视?

python - 调用函数时更改 Python 3 sys.argv

python - Django channel 页面卡在加载中

python - MySql 服务器上的 Django 模型导出