dem*_*oid 5 javascript php xmpp openfire converse.js
运用
目前,Openfire和网站都有单独的数据库,但它们是同步的.
当用户登录网站时,Converse JS还必须在整个用户会话期间登录并与Openfire XMPP Server建立持久连接,并且注销.
谷歌搜索了很多并研究了Converse JS和Openfire网站.
请注意,Converse JS 有预绑定属性和单一会话支持,可以实现我想要的.他们还为网站提供PHP库示例.
Converse JS的初始脚本如下所示:
converse.initialize({
bosh_service_url: 'https://bind.example.com',
keepalive: true,
jid: 'me@example.com',
authentication: 'prebind',
prebind_url: 'http://example.com/api/prebind',
allow_logout: false
});
Run Code Online (Sandbox Code Playgroud)
据我所知,整个过程如下:
混淆从第2步开始:我是否应该保存用户的XMPP密码并在PHP会话中以纯文本格式登录,因为XMPP身份验证?或者我错了,有更安全的方法来实现它?
并在第3步,用工作用户名和密码测试得到Invalid challenge response received错误.是否有任何工作库可以从PHP进行身份验证?
混乱从第二步开始:由于 XMPP 身份验证,我是否应该在 PHP 会话中保存用户的 XMPP 密码并以纯文本格式登录?或者我弄错了并且有更安全的方法来实现它?
您需要某种方法来针对 XMPP 服务器进行身份验证。一种方法是以明文形式存储用户名和密码并使用它们进行登录。这样做有明显的缺点。
另一种方法是让 XMPP 服务器依次针对某些外部服务进行身份验证(所谓的外部身份验证)。通常,您会希望此外部服务成为您自己的后端应用程序。
例如,您可以将 JID 和特殊生成的令牌作为密码发送到 XMPP 服务器。然后,XMPP 服务器使用外部身份验证来调用其他 Web 服务(例如您的 Web 应用程序)来检查 JID 和令牌是否有效。
每次进行身份验证时,都会生成一个新令牌。这样,您根本不需要存储任何密码,但您需要跟踪(并使)临时令牌。
以下是 ejabberd 外部身份验证脚本的一些示例: https: //www.ejabberd.im/extauth
在第三步中,在使用工作用户名和密码进行测试时,收到无效的质询响应错误。有没有可以从 PHP 进行身份验证的工作库?
据我所知,从 converse.js 文档链接到的库可以工作。它被不同的人使用。
| 归档时间: |
|
| 查看次数: |
1160 次 |
| 最近记录: |