2014-09-11 4 views
0

У меня есть приложение Rails с подобной аутентификацией и множеством частей, которые зависят от него. Теперь я хочу добавить чат между пользователями, используя ejabberd (xmpp). Я искал сеть и обнаружил, что это вполне возможно, но я не могу понять, как сделать авторизацию на сервере ejabberd. Например, пользовательские логины в приложении Rails через страницу входа с одним учетным именем, как реализовать ejabberd loggining в этом действии? Неплохо написано, как «пожалуйста, положите своего пользователя pw и ejabbered pw». Другим способом является регистрация пользователей обезьян-патчей, поэтому ejabbered будет использовать тот же pw, что и пользователь в базе данных, и я сделаю авторизацию в одном действии, но будет ли это хорошо? И как долго пользователь будет в сети таким образом? Может, я что-то не понял?Приложение Ejabberd и Ruby on Rails

+1

Возможно, [этот ответ] (http://stackoverflow.com/a/3804011/113848) может оказаться полезным. – legoscia

+0

@legoscia кажется, что это может помочь. Спасибо. По крайней мере, я нашел https://github.com/geoiq/digitalgazette/tree/master/mods/chat/files эти решения – AKovtunov

ответ

1

Я использовал рельсы extauth-скрипт как этот https://github.com/geoiq/digitalgazette/blob/master/mods/chat/files/ejabberd-auth.rb и ruby_bosh gem для моего приложения. Итак, теперь ejabberd использует мое приложение для аутентификации пользователей. При входе в систему (например) jid и пароль пользователя используются ruby_bosh для создания сеанса и получения jid, rid и sid, сохраняя их в сеансе, чтобы использовать их позже в strophejs.