twilio.js版带有JWT签名验证的浏览器软电话问题(Mac OSX/Chrome)

2024-10-02 02:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Twilio官方的tutorial code here,我得到了一个电话号码和一个TwiML应用程序,并启动了flask服务器和ngrok转发过程。操作系统和浏览器是Chrome 53.0.2785.143 (64-bit) on Mac OSX。在

不幸的是,它失败了,出现以下错误:Twilio.Device Error: JWT signature validation failed,如屏幕截图所示:

running in browser

我试着把{debug : true}交给这个电话:

Twilio.Device.setup(data.token, { debug: true }); 

得到如下输出:

console logging JS error

但现在还不清楚到底发生了什么。如果我尝试将返回的实际兼容性令牌抛出Python控制台(使用JWT encoder/decoder),并尝试使用Twilio secret auth令牌和HS256 algorithm对其进行解码:

^{pr2}$

我得到以下错误:

/Users/me/.virtualenvs/myenv/lib/python2.7/site-packages/jose/jwt.pyc in decode(token, key, algorithms, options, audience, issuer, subject, access_token)
    132         payload = jws.verify(token, key, algorithms, verify=verify_signature)
    133     except JWSError as e:
--> 134         raise JWTError(e)
    135 
    136     # Needed for at_hash verification

JWTError: Signature verification failed.

所以也许他们没有用这个作为密码解码的秘密,所以不确定这能证明多少。在

有什么想法吗?在


Tags: keydebugtokentruedevice错误解码jwt
1条回答
网友
1楼 · 发布于 2024-10-02 02:33:44

有一些事情可以尝试。在

第一:确保您使用的是实际的AccountSID和AuthToken,不要试图使用“测试凭据”。如果你的试用帐户可以正常工作,twilio只有预先准备好的语音通话问候语。在

第二:确保您已经创建了一个TwiML应用程序,并且在“allowClientOutgoing”方法中使用了“applicationId”的关联AppID。在

这应该能帮你完成JWT的签约过程。如果你的服务器似乎不工作。我刚刚构建了一个位于here的googleapps脚本版本。只需按照代码中的符号制作一个副本,放置您的凭证和appId,然后您就可以看到它是否与您的服务器有关。 要使用,只需对发布的应用程序脚本URL发出GET请求,它将返回令牌。在

确保JWT签名正确后的附加步骤。在

对于传出,您将需要回拨到您的服务器,以发送一些TwiML回拨命令,以拨出的号码。在附加的googleapps脚本上也有一个设置。将脚本url添加到您的registerd twilio号码上的语音回调区,并将其设置为POST请求。在

传出的示例TwiML

<Response><Dial callerId="+//enter your registered phonenumber here////">'+tocall+'</Dial></Response>'

在安装过程中,你需要一个名为“允许你用用户名拨号”的客户端。在

输入TwiML示例

^{pr2}$

然后在控制台中为TwiML-Bin分配注册电话号码的传入端。在

相关问题 更多 >

    热门问题