我想使用node.js(或Django)和Ejabberd或MongooseIM为聊天应用程序开发后端服务器。并在应具有推送通知的React Native应用上使用此API。
这个想法是通过我自己的服务器管理用户配置文件和元数据以及身份验证(OAuth 2.0-社交登录),然后将聊天内容的管理转移到Ejabberd或MongooseIM服务器。
问题在于如何在服务器之间建立连接。我想通过我的服务器登录,并且不让用户知道现有的Ejabberd或MongooseIM服务器。
关于如何在服务器之间建立连接的任何想法?
答案 0 :(得分: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中,您可以通过实现外部脚本auth来做到这一点:
这种方法使您无需进行第二个帐户注册(在Ejabberd侧),因此您在两个应用程序(Server App和Ejabberd)中使用相同的用户凭据