我想使用node.js(或Django)和Ejabberd或MongooseIM为聊天应用程序开发后端服务器。并在应该具有推送通知的React Native应用程序上使用此API。
我们的想法是通过我自己的服务器管理用户配置文件和元数据以及身份验证(OAuth 2.0 - 社交登录),然后管理聊天内容到Ejabberd或MongooseIM服务器。
问题在于如何在服务器之间建立连接。我想通过我的服务器登录,并且不要让用户知道现有的Ejabberd vs MongooseIM服务器。
关于如何在服务器之间建立连接的任何想法?
问题在于如何在服务器之间建立连接。我想通过我的服务器登录,不要让用户知道现有的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方面),因此您在两个应用程序中使用相同的用户凭据(Server App和Ejabberd)