【问题标题】:Twilio JWT Token expiredTwilio JWT 令牌已过期
【发布时间】:2018-07-31 14:31:41
【问题描述】:

我正在使用 twilio 语音通话,它工作正常。但是 twilio jwt 令牌每小时结束一次。为此,用户必须每小时刷新一次页面。 我的问题是如何在nodejs中延长token时间。

我正在使用此代码生成令牌

var twilio = require('twilio');
var client = twilio(config.accountSid, config.authToken);
const ClientCapability = twilio.jwt.ClientCapability;

app.get('/token', (request, response) => {   
    const capability = new ClientCapability({
        accountSid: config.accountSid,
        authToken: config.authToken
    });
    capability.addScope(
        new ClientCapability.OutgoingClientScope({
            applicationSid: config.applicationSid 
        })
    );
    const token = capability.generateToken();
    // Include token in a JSON response
    response.send({
        token: token,
    });
});

谢谢

【问题讨论】:

    标签: javascript node.js twilio


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    访问令牌确实有有限的生命周期。正如 Ankush 回答的那样,您最多可以设置一个不同的 ttl 24 小时。

    更好的是使用Twilio Access Manager。它作为 JavaScript 的 twilio-common 的一部分或 iOS 和 Android 上的 Access Manager 包提供。

    AccessManager 将触发您可以挂钩的两个事件。首先,当一个令牌即将到期时,它会触发一个令牌过期事件。挂钩该事件,当您收到它时,从您的服务器生成一个新令牌。然后,您可以在 AccessManager 中设置该新令牌。

    设置该令牌后,AccessManager 将触发令牌更新事件,您可以在 Twilio 语音客户端(或聊天、视频或同步客户端,具体取决于您使用的内容)中侦听和更新令牌。

    要详细了解如何为每个平台下载、安装和使用 Access Manager,请查看Access Token life cycle and Access Manager documentation

    让我知道这是否有帮助。

    【讨论】:

    • 您提供的链接仅涉及聊天。该页面上没有提及语音,语音文档也绝对没有提及一旦获得新令牌后如何使用新令牌更新语音设备。也没有提到如果令牌在语音通话期间过期会发生什么......
    • 你说得对,聊天和语音过去的处理方式相同,聊天文档是我可以分享的最佳版本,但这个答案来自两年前。现在,当令牌过期时,Twilio.Device will emit an “offline” event 应该使用新令牌调用 setup 以重新连接它。
    • 嗨@philnash我有类似的类似我的事件在令牌即将到期时触发并且它确实说它已更新但我的一些我的twillio聊天客户端在此之后从未连接过,我需要获取新令牌还是我在这里遗漏了什么。
    • @DeepKSOreadytohelp 当您的令牌过期时,您确实需要获取一个新令牌并使用它来更新客户端。你在做什么?
    【解决方案2】:

    来自文档:

    https://www.twilio.com/docs/voice/client/capability-tokens

    在这里,我们生成一个仅在十分钟内有效的令牌。 expires 参数需要以秒为单位的时间。

    capability = ClientCapabilityToken(account_sid, auth_token, ttl=600)
    print(capability.to_jwt())
    

    【讨论】:

    • 请看,它在 node js 中通过这个 const 能力 = new ClientCapability({ accountSid: config.accountSid, authToken: config.authToken, ttl=600 });
    • 这很酷@ShubhamAzad...Ab indore ke pohe jalebi khila do...:)
    • 请进来。我给你款待
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2017-03-04
    • 2019-07-04
    • 2019-09-28
    • 2018-06-19
    • 1970-01-01
    相关资源
    最近更新 更多