Jitsi Meet:JWT身份验证:无效的json

时间:2018-10-29 22:29:48

标签: json jwt jitsi prosody-im jitsi-meet

我正在尝试配置Jitsi Meet设置以使用JWT身份验证;我已按照以下详细说明进行了设置: https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md

使用prosody-trunk内部版本747似乎可以正确安装和配置所有内容,并且jitsi-meet-tokens的安装已完成,没有任何错误,但是prosody不接受我创建的令牌,并报告如下错误:

general warn    Error verifying token err:not-allowed, reason:Invalid json

这表明我的令牌的JSON格式在某种程度上是错误的,或者编码不正确,但是如果我自己对其进行解码,那么一切似乎都是正确的,并且可以使用位于{{3的JWT调试器}}

我正在用PHP生成令牌,虽然我使用的类很简单,但JWT标准也很简单;这只是创建JSON(PHP中对象的json_encode)然后将其编码为base64而没有任何填充的情况。

JWT令牌使用jwt.io上的调试器正确验证,这是示例URL,其中包含我生成的令牌:

https://chat.uprospr.com/MyCompanyCabeoBathgate?jwt="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqIiwiaXNzIjoidXByb3NwciIsInN1YiI6InVwcm9zcHIuY29tIiwicm9vbSI6Ik15Q29tcGFueUNhYmVvQmF0aGdhdGUifQ.vPotxB4FRVpJZNF_i_UyS3M-HSJVBvUqWNve-PSh_yo"

这很简单,但是prosody仍然抱怨说它是无效的JSON;有谁知道为什么会这样?

如果有什么用,这是另一个使用秘密80385194037914f(不是我的生产秘密)创建的示例令牌:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqIiwiaXNzIjoidXByb3NwciIsInN1YiI6ImNoYXQudXByb3Nwci5jb20iLCJyb29tIjoiTXlDb21wYW55Q2FiZW9CYXRoZ2F0ZSJ9.-4u64dx4JThu-8iczuwA5q67FAOvUwasNUQ_MjvS7qg

错误是invalid json而不是更具体的事实,表明错误发生在解码的某个位置,即对base64或JSON对象进行解码。

我尝试遍历部分韵律源代码,但找不到错误的真正出处;尽管我发现如果有效载荷中的实际数据存在问题(例如无效的受众,无效的主题等),则会发生一些更具体的错误。

到目前为止,关于为什么韵律拒绝接受我想使用的令牌,我一无所知。

0 个答案:

没有答案