Ошибка аутентификации пользователя Ejabberd с mysql - PullRequest
0 голосов
/ 11 ноября 2019

Я установил ejabberd в моей локальной системе с MySQL, используя ссылку ниже. Я использую PHP для использования на стороне сервера.

https://medium.com/modern-sysadmin/how-to-install-ejabberd-18-01-xmpp-server-with-mysql-on-ubuntu-16-04-f0facededf2e

Все работает нормально.

Я использую этот скрипт PHP https://github.com/cweiske/xmpphp/

Но проблема в том, что когда я добавляю пользователя из веб-администратора ejabberd, он прекрасно работает для отправки сообщений. но когда я добавляю пользователя непосредственно в таблицу пользователей mysql, оба пользователя сохраняют в таблице пользователей один и тот же формат одним и тем же способом, но когда я отправляю сообщение, используя непосредственно добавленное имя пользователя, это не работает.

Получение ошибок ниже в терминале

09:49:48.239 [error] Supervisor ejabberd_c2s_sup had child undefined started with {ejabberd_c2s,start_link,undefined} at <0.2500.0> exit with reason no function clause matching base64:decode_binary(<<>>, <<"×mø">>, 57, 58) line 368 in context child_terminated

15:22:43.281 [error] CRASH REPORT Process <0.5360.0> with 0 neighbours exited with reason: no function clause matching base64:decode_binary(<<>>, <<"×mø">>, 57, 58) line 368 in p1_server:terminate/7 line 878

Помогите мне, как ejabberd работает с пользователями mysql? Ejabberd сохранить данные пользователей в другом месте?

1 Ответ

0 голосов
/ 11 ноября 2019

но когда я добавляю пользователя прямо в таблицу пользователей mysql

У меня есть две идеи, чтобы вы могли исследовать вашу проблему:

  • Чтоесли вы создаете учетную запись с простыми символами ascii, например, «user123» вместо «× mø», это работает или не работает?

  • Что если вы зарегистрируете учетную запись с помощью командной строки «ejabberctl register» вместо вставки элементов непосредственно в базу данных, это работает или не работает?

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

...