Как полностью интегрировать XMPP на веб-сайт с зарегистрированными пользователями

У нас есть социальная сеть, где люди имеют контакты, и мы хотим, чтобы она была интегрирована с XMPP. В настоящее время мы используем сервер XMPP ejabberd.

Вот мои вопросы:

  1. Как правильно создать учетную запись? Сейчас я думаю о регистрации пользователей в нашем веб-приложении, мы бы вызвали сценарий, который будет выполнять команду ejabberd для создания пользователя.

  2. Аутентификация пользователя. После входа пользователя в систему на нашем веб-сайте, пользователь автоматически войдет в систему чата. Как это сделать на стороне клиента с помощью strophe.js? Насколько я понимаю, вам нужно предоставить JID и пароль для аутентификации, поэтому я думаю, что при входе в систему будет вызов ajax для получения пароля пользователя, а затем использовать текст ответа при вызове входа в strophe.js. Это безопасно? Есть ли другие способы сделать это?

  3. Регистрация присутствия. В нашем веб-приложении есть система контактов, но в XMPP есть собственный способ добавления контактов через подписку на присутствие, верно? Пример: когда пользователь user1 пытается добавить пользователя user2, пользователю user2 будет запрошена авторизация до того, как user1 станет контактом пользователя user2. Но поскольку в нашем веб-приложении уже есть система контактов, мы хотим обойти эту авторизацию XMPP или подавить ее и просто авторизоваться с помощью сценария / команды, когда пользователь2 подтверждает пользователя user1 как контакт на нашем веб-сайте . Мне пока не ясно, но мой коллега сказал, что это возможно в модуле ejabberd mod_admin_extra (команда, которая создает подписку без авторизации на стороне клиента). Возможно ли, или мне нужно манипулировать базой данных ejabberd вручную с помощью скрипта (при условии, что я перешел из базы данных Mnesia по умолчанию в другую базу данных, например MySQL).

Заранее спасибо.

15
задан legoscia 11 September 2014 в 15:35
поделиться