Como integrar totalmente o XMPP em um site com usuários registrados

Temos um site de rede social em que as pessoas têm contatos e queremos que ele seja integrado ao XMPP. Atualmente, usamos o servidor ejabberd XMPP.

Aqui estão as minhas perguntas:

Como criar uma conta corretamente? No momento, o que eu estou pensando é no registro do usuário em nosso aplicativo Web, chamaríamos um script que executaria um comando ejabberd para criar um usuário.

Autenticação de usuário. Após o login do usuário em nosso site, o usuário será automaticamente conectado ao sistema de bate-papo. Como você faz isso no lado do cliente com strophe.js? Pelo que entendi, você precisa fornecer JID e senha para autenticação, então estou pensando que, no login, haveria uma chamada ajax para obter a senha do usuário e, em seguida, use o texto de resposta na chamada de login do strophe.js. Isso é seguro? Existem outras maneiras de fazer isso?

Registro de presença. Nosso aplicativo da web tem um sistema de contatos, mas o XMPP tem sua própria maneira de adicionar contatos por meio da assinatura de presença, certo? Exemplo: Quando o usuário1 tenta adicionar o usuário2, uma autorização é solicitada ao usuário2 antes que o usuário1 possa ser um contato do usuário2. Mas como já temos um sistema de contatos em nosso aplicativo Web, queremos ignorar essa autorização do XMPP ou suprimi-la e apenas autorizar com um script / comando quando o usuário2 confirmar o usuário1 como um contatoEm nosso site. Ainda não está claro para mim, mas um colega disse que isso é possível no módulo mod_admin_extra do ejabberd (um comando que criará uma assinatura sem a necessidade de autorização do cliente). É possível ou tenho que manipular o banco de dados ejabberd manualmente com um script (desde que eu tenha transferido do banco de dados Mnesia padrão para outro banco de dados, digamos MySQL).

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion