1

我想为使用 node.js(或 Django)和 Ejabberd 或 MongooseIM 的聊天应用程序开发后端服务器。并在应该具有推送通知的 React Native 应用程序上使用此 API。

这个想法是通过我自己的服务器管理用户配置文件和元数据以及身份验证(OAuth 2.0 - 社交登录),然后让聊天内容管理到 Ejabberd 或 MongooseIM 服务器。

问题在于如何在服务器之间建立连接。我想通过我的服务器登录,并且不让用户知道现有的 Ejabberd 或 MongooseIM 服务器。

关于如何在服务器之间建立连接的任何想法?

4

1 回答 1

1

问题在于如何在服务器之间建立连接。我想通过我的服务器登录并且不让用户知道现有的 Ejabberd 服务器。

我认为这不是正确的方法

以下是我如何看待它以及我如何在一些项目中实现它:

1)用户通过App Server REST API登录并获得一些会话令牌或类似的东西和user_id

2) 然后这个用户使用这个 user_id 为 ejabberd 建立一个 JID,例如@yourejabberdserver.com

3) 然后这个用户使用这个 JID 和会话令牌作为密码并连接到 Ejabberd。

4) 在这种情况下,Ejabberd 会验证会话令牌(它会转到您的 App Server DB 并进行验证,或者如果您使用 JWT 令牌,那么它只会验证它)。在 Ejabberd 中,您可以通过实现外部脚本身份验证来做到这一点:

这种方法使您免于进行第二次帐户注册(在 Ejabberd 端),因此您在两个应用程序(服务器应用程序和 Ejabberd)中使用相同的用户凭据

于 2018-09-07T14:46:33.480 回答