ejabberd中的xmpp用户授权失败
我已经在ejabberd注册了我的管理员用户。当我尝试使用xmpp php代码在ejabberd中注册新用户时,我遇到了一个错误ejabberd中的xmpp用户授权失败,xmpp,ejabberd,Xmpp,Ejabberd,我已经在ejabberd注册了我的管理员用户。当我尝试使用xmpp php代码在ejabberd中注册新用户时,我遇到了一个错误xmlrpc:error-118执行带有参数的命令register时出现了一个问题“{error,access\u rules\u unauthorized}”。我尝试了很多方法,但没有找到任何解决方案,并且一次又一次地出现相同的错误。是的,这可能会导致为这些API前端正确配置权限,并将身份验证详细信息正确传递给它们的操作变得很棘手 使用如下配置: listen:
xmlrpc:error-118执行带有参数的命令register时出现了一个问题“{error,access\u rules\u unauthorized}”。我尝试了很多方法,但没有找到任何解决方案,并且一次又一次地出现相同的错误。是的,这可能会导致为这些API前端正确配置权限,并将身份验证详细信息正确传递给它们的操作变得很棘手
使用如下配置:
listen:
...
-
port: 4560
module: ejabberd_xmlrpc
acl:
admin:
user:
- user1@localhost
api_permissions:
"register command":
from: ejabberd_xmlrpc
who:
access:
allow:
acl: admin
what: register
使用该Python客户端:
import xmlrpclib
server_url = 'http://127.0.0.1:4560'
server = xmlrpclib.ServerProxy(server_url)
EJABBERD_XMLRPC_LOGIN = {'user':'user1', 'server':'localhost', 'password':'mypass11', 'admin':True}
def ejabberdctl(command, data):
fn = getattr(server, command)
return fn(EJABBERD_XMLRPC_LOGIN, data)
print ""
print "Calling with auth details..."
result = ejabberdctl('register', {'user':'User5', 'host':'localhost', 'password':'newpass'})
print "Results: "
print result
请记住使用该密码注册user1,或者根据您的管理员帐户修改该脚本
然后执行它,并应正确工作:
$ python test.py
Calling with auth details...
Results:
{'res': 0, 'text': 'User User5@localhost successfully registered'}
这回答了你的问题吗?