创建 php 表单以允许创建新的 XMPP 帐户 [关闭]

Posted

技术标签:

【中文标题】创建 php 表单以允许创建新的 XMPP 帐户 [关闭]【英文标题】:Create php form to allow create new XMPP accounts [closed] 【发布时间】:2016-01-17 19:42:50 【问题描述】:

我想创建一个简单的 php 表单(昵称和用户名),以允许用户通过网站在服务器中注册一个新的 jabber 帐户。我正在使用韵律作为 XMPP 服务器,我可以通过 Pidgin 等客户端创建新帐户,但是虽然我正在阅读它,但我发现要通过 http 使用 XMPP 我应该启用一个 bosh 服务器,但我不知道它是否可以帮助我找到解决问题的方法,并且我在 PHP 中找到的 XMPP 的少数库没有任何功能可以在服务器中创建新帐户(或者除非我没有看到任何功能......)。而且我不想使用 exec 功能,因为注册新用户的命令要求我提供 sudo 权限。 如果有人能教我如何处理它来学习,我将非常感激。

【问题讨论】:

要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。 我不想要垃圾邮件。我试图解释是我试图解决我的问题。我想要一个简单的 php 表单,任何用户都可以输入昵称和密码并将其注册到 xmpp 服务器。首先,我尝试通过 exec php 函数直接执行此操作,但由于 www-data 没有正确的权限,它不起作用,我问我是否需要启用 bosh 服务器,如果需要,我该怎么做通过 php 表单创建新用户?我不知道我是否解释得很好@CharlotteDunois 欢迎来到 SO。请阅读What topics can I ask about 和How to ask a good question 和the perfect question SO 不是免费的编码或教程服务 你必须证明你已经为解决自己的问题付出了一些努力。 老实说,尽管他的问题可以用更好的方式提出,但他确实暗示他已经尝试过 PHP exec(),并且他要求一个具体的解决方案来处理他的问题“如何通过 PHP 在 Prosody 中创建用户帐户”的问题。 【参考方案1】:

尽管您的问题本可以提出更好的解决方案,但一种解决方案似乎是使用非 root 帐户运行韵律服务器(无论如何这可能是个好主意)。使用 www-data 或另一个允许 www-data 用户拥有足够权限的用户/组。那么PHP exec应该没有问题。

此外,曾经有一个韵律模块允许通过 XMLRPC 进行控制。文档显示它在当前版本中已被弃用,但也许它仍在源代码中?如果该模块仍然可用,那么您可以使用 XMLRPC 从 PHP 与韵律服务器对话。

【讨论】:

感谢您的回复,我没有很好地解释我是对的......对不起,这是我的内疚。我看到了 XMLRPC 模块,但它是如何被弃用的,我认为它与最新版本不兼容,或者还有另一个问题......作为 www-data 运行韵律是否安全?如果是这样,我该怎么做?将以下行添加到我的脚本中? www-data ALL=(ALL) NOPASSWD: /usr/bin/prosody 没问题,我们都在学习和提高我们的提问技巧:-) 以 www-data 身份运行 Prosody 肯定比以 root 身份运行更安全 :-) 作为替代方案,可以将 sudo 配置为允许某些命令而无需输入密码。我对 Prosody 不是很熟悉,所以我不能确切地建议你如何以你想要的用户身份运行它。我相信这也取决于您的发行版,因为初始化脚本等会有所不同。 是的 :) 好的,最后一个问题,我不会再打扰您了,如何将韵律作为 www-data 运行?因为如果我在控制台中执行以下命令:runuser -l www-data service prosody start我得到This account is currently not available. 就像我说的那样,如何做到这一点取决于您正在运行的发行版。 runuser 失败,因为出于安全原因,您不能以 www-data 的身份“登录”。

以上是关于创建 php 表单以允许创建新的 XMPP 帐户 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android Asmack xmpp 登录仅适用于我自己的 Facebook 帐户

Android 5 受限帐户允许下载

如何升级数据库用户权限以创建新数据库?

如何限制表单的使用或限制访问

XMPP 协议允许使用协议注册

MediaWiki:允许用户在私人 wiki 上创建帐户