【问题标题】:Twilio Re-Initialize JS Client when JWT token expires当 JWT 令牌过期时,Twilio 重新初始化 JS 客户端
【发布时间】:2019-02-01 07:03:15
【问题描述】:

功能令牌设置为在 60 秒后过期,因此当它过期时,我正在尝试重新设置设备

twilioDevice = new Twilio.Device();

// I also need incoming calls too, so client has to be refreshed every 60 sec
this.twilioDevice.on('error', error => {
   if (error.code === 31205) {
     this.initilizeTwilio();
   } else {
     this.toastr.warning(error.code + '' + error.message);
   }
});

initilizeTwilio() {
    this.twilioService.getCapability(60).subscribe(data => {
       if (this.twilioDevice.isInitialized) {
           this.twilioDevice.setup(data.capabilitytoken);
       } else {
          this.twilioDevice.setup(data.capabilitytoken, {debug: true});
       }
 }

第一次设置工作正常,当令牌过期时.setup()被调用,还有其他需要调用的方法吗?我在这里做错了什么?

Twilio Reference

【问题讨论】:

  • 在图像中的时间戳中,您第一次创建设备并进行设置,然后在 60 秒后(如预期)和 62 秒后出现错误。您是否正在缓存并返回相同的过期令牌?另外,您使用的是能力令牌还是访问令牌?我建议使用访问令牌,因为功能令牌现在已弃用。
  • 知道了,cache 是问题所在
  • @philnash Capability docs 没有声明它已被弃用,但提到了here
  • @philnash 您能否提供一个功能令牌将被完全弃用的估计日期?
  • documentation for Twilio Client lists the capability token as deprecated 虽然没有估计何时将其删除。我仍然建议升级到访问令牌,这样您将来就不会遇到问题。如果您使用的是 Twilio 帮助程序库,那么它应该是一个相当简单的更改。

标签: angular twilio


【解决方案1】:

这里是 Twilio 开发者宣传员。

我将其添加为评论,但我想在这里说出答案。

在图像中的时间戳中,您是第一次创建设备并进行设置,然后在 60 秒后(如预期)和 62 秒后出现错误。因此,您的服务器端似乎存在缓存问题。

如果您希望接听来电,您也可以考虑延长访问令牌的超时时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2015-01-24
    • 2019-04-10
    • 2022-11-29
    相关资源
    最近更新 更多