我试图将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格式在某种程度上不正确,或者编码不正确,但是如果我自己解码它,这一切看起来都是正确的,我可以使用jwt调试器在
https://jwt.io
im在php中生成我的令牌,虽然im使用的类相当简单,jwt标准也是如此;它只是创建json的一个例子(
json_encode
,然后编码为base64,不带任何填充。
jwt令牌使用jwt.io上的调试器正确验证,下面是一个示例url,其中包含我生成的令牌:
https://chat.uprospr.com/MyCompanyCabeoBathgate?jwt="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqIiwiaXNzIjoidXByb3NwciIsInN1YiI6InVwcm9zcHIuY29tIiwicm9vbSI6Ik15Q29tcGFueUNhYmVvQmF0aGdhdGUifQ.vPotxB4FRVpJZNF_i_UyS3M-HSJVBvUqWNve-PSh_yo"
这很简单,但prosody仍然抱怨它是无效的json;有人知道为什么会这样吗?
如果它有任何用途,这里有另一个使用secret创建的示例令牌
80385194037914f
(不是我的生产机密):
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqIiwiaXNzIjoidXByb3NwciIsInN1YiI6ImNoYXQudXByb3Nwci5jb20iLCJyb29tIjoiTXlDb21wYW55Q2FiZW9CYXRoZ2F0ZSJ9.-4u64dx4JThu-8iczuwA5q67FAOvUwasNUQ_MjvS7qg
错误是
invalid json
,而不是某个更具体的问题,表明错误发生在解码过程中的某个地方,解码base64或json对象。
我试过在prosody源代码的某些部分中查找,但找不到错误的实际来源;尽管我发现了一些更具体的错误,如果问题是与我的有效负载中的实际数据有关(例如,无效的受众、无效的主题等),则会发生这些错误。
到目前为止,我完全不明白为什么韵律拒绝接受我想要使用的代币。