Как связать Ejabberd или MongooseIM с Node.js (или Django) - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу разработать внутренний сервер для приложения чата с использованием node.js (или Django) и Ejabberd или MongooseIM. И использовать этот API в приложении React Native, которое должно иметь push-уведомления.

Идея состоит в том, чтобы управлять профилем пользователя и метаданными, а также аутентификацией (OAuth 2.0 - социальный вход в систему) через мой собственный сервер, а затем передавать управление чатом на сервер Ejabberd или MongooseIM.

Проблемы возникают при установлении соединения между серверами. Я хочу войти через свой сервер и не информировать пользователя о существующем сервере Ejabberd или MongooseIM.

Есть идеи, как установить соединение между серверами?

1 Ответ

0 голосов
/ 07 сентября 2018

Проблемы возникают при установлении соединения между серверами. я хотите войти через мой сервер и не информировать пользователя о существующий сервер 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)

...