【问题标题】:JWT Token Expired issue when using Twilio JS Client API使用 Twilio JS 客户端 API 时出现 JWT 令牌过期问题
【发布时间】:2013-12-12 07:51:09
【问题描述】:

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

我正在使用Twilio JS Client API 和 Django 后端来生成功能令牌。我正在使用这个Python Helper Library。

一切似乎都运行良好,但当我尝试拨打电话时,我的客户端出现错误:

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

WebSocket is already in CLOSING or CLOSED state.

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

这是我在 Django 中的视图方法,它生成了一个不错的功能令牌:

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 作为后端制作了完全相同的应用程序,效果很好:)

【问题讨论】:

    标签: javascript python django twilio


    【解决方案1】:

    解决了!

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

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

    【讨论】:

    • 谢谢,它对我有帮助,我为此花了一整天,最后你的建议是帮助,我设置了我的日期和时间,它的工作:)
    • 很高兴听到! @chiragpatel
    • 这也是我使用 Twilio 令牌的问题。 Laravel Homestead 有一个臭名昭著的时钟错误问题。 github.com/laravel/homestead/issues/799#issuecomment-392079462
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2019-06-09
    • 2015-07-27
    • 2020-06-22
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多