Jitsi Meet: аутентификация JWT: неверный json

Я пытаюсь настроить установку Jitsi Meet для использования аутентификации JWT; Я следовал инструкциям по настройке, как описано здесь: https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md

Кажется, все установлено и настроено правильно, используя prosody-trunk сборка 747 и установка jitsi-meet-tokens завершено без каких-либо ошибок, однако просодия не принимает созданные мной токены, сообщая об ошибке примерно так:

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

Это может указывать на то, что JSON-форма моего токена каким-то образом искажена или неправильно закодирована, но если я сам ее декодирую, все кажется правильным, и я могу правильно его декодировать, используя отладчик JWT по адресу https://jwt.io/.

Я генерирую свои токены в PHP, и хотя класс, который я использую для этого, довольно прост, так же как и стандарт JWT; это просто случай создания JSON (json_encode объекта в PHP) затем кодирование в виде base64 без каких-либо дополнений.

Токен JWT проверяется правильно с помощью отладчика в jwt.io, вот пример URL с сгенерированным токеном:

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

Это так просто, как я мог, но просодия все еще жалуется, что это недопустимый JSON; У кого-нибудь есть идеи, почему это может быть?

На случай, если он пригодится, вот еще один пример токена, созданный с использованием секрета. 80385194037914f (не мой секрет производства):

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqIiwiaXNzIjoidXByb3NwciIsInN1YiI6ImNoYXQudXByb3Nwci5jb20iLCJyb29tIjoiTXlDb21wYW55Q2FiZW9CYXRoZ2F0ZSJ9.-4u64dx4JThu-8iczuwA5q67FAOvUwasNUQ_MjvS7qg

Дело в том, что ошибка invalid json, а не что-то более конкретное, предполагает, что где-то в декодировании происходит ошибка, либо декодирование объекта base64, либо JSON.

Я попытался покопаться в частях исходного кода просодии, но не могу найти, где на самом деле происходит ошибка; хотя я обнаружил некоторые более конкретные ошибки, которые возникли бы, если бы проблема была связана с фактическими данными в моей полезной нагрузке (например, недопустимая аудитория, недопустимый объект и т. д.).

Пока что я в полном недоумении, почему просодия отказывается принимать токены, которые я хочу использовать.

0 ответов

Другие вопросы по тегам