Проблемы возникают при установлении соединения между серверами. я
хотите войти через мой сервер и не информировать пользователя о
существующий сервер Ejabberd.
Я думаю, что это не правильный путь
Вот как я это вижу и как я реализовал это в некоторых проектах:
1) пользователь входит в систему через REST API сервера приложений и получает маркер сеанса или что-то в этом роде и user_id
2) затем этот пользователь использует этот user_id для создания JID для ejabberd, например, @yourejabberdserver.com
3) затем этот пользователь использует этот JID и маркер сеанса в качестве пароля и подключается к Ejabberd.
4) Ejabberd в этом случае проверяет токен сеанса (он попадает в БД вашего сервера приложений и проверяет, или, если вы используете токен JWT, он просто проверяет его). В Ejabberd вы можете сделать это с помощью внешнего скрипта auth:
Этот подход избавляет вас от регистрации второй учетной записи (на стороне Ejabberd), поэтому вы используете одинаковые учетные данные пользователя в обоих приложениях (Server App & Ejabberd)