繁体   English   中英

无法将用户从iOS客户端注册到Ejabberd Server-XMPP

[英]Unable to register a user from iOS Client to Ejabberd Server - XMPP

我使一个EJabberd服务器启动并运行。 我在iOS中编写一个简单的聊天客户端,尝试注册用户。 但是我无法注册用户。 我确定请求正在到达Ejabberd服务器。

登录服务器在下面

=INFO REPORT==== 2014-04-25 10:46:51 ===
I(<0.381.0>:ejabberd_listener:281) : (#Port<0.3853>) Accepted connection {{211,28,44,250},52988} -> {{172,31,0,235},5222}

=INFO REPORT==== 2014-04-25 10:46:52 ===
I(<0.398.0>:ejabberd_c2s:802) : ({socket_state,gen_tcp,#Port<0.3853>,<0.397.0>}) Failed authentication for ioc1@localhost

在此处输入图片说明

任何想法如何做到这一点? 这与authmethod有关吗?

这就是我在ejabberd.cfg中拥有的

{host_config, "localhost", [{auth_method, [anonymous]},
                                 {anonymous_protocol, sasl_anon}]}.

以下是来自XCODE的日志

2014-04-25 20:46:49:384 iPhoneXMPP[1971:90b] SEND: <auth       xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="DIGEST-MD5"/>
 2014-04-25 20:46:49:620 iPhoneXMPP[1971:650b] RECV: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">bm9uY2U9IjMzNzkzODUwOTEiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
 2014-04-25 20:46:49:621 iPhoneXMPP[1971:650b] SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9ImlvYzEiLHJlYWxtPSJsb2NhbGhvc3QiLG5vbmNlPSIzMzc5Mzg1MDkxIixjbm9uY2U9IkMzN0U0NjlBLTg0RUUtNEY3RS1CNTEzLTM5RUJFREU0NzQ3NCIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC9sb2NhbGhvc3QiLHJlc3BvbnNlPTQzYTY5OTVlZmY2Y2UwNzA0YmJkNWM4OWZiNGU5ZDQ1LGNoYXJzZXQ9dXRmLTg=</response>
2014-04-25 20:46:49:865 iPhoneXMPP[1971:4953] RECV: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
2014-04-25 20:46:49:865 iPhoneXMPP[1971:90b] iPhoneXMPPAppDelegate: xmppStream:didNotAuthenticate:
2014-04-25 20:46:49.865 iPhoneXMPP[1971:90b] num--680
2014-04-25 20:46:49.866 iPhoneXMPP[1971:90b] elements--(
"<username>ioc1@localhost</username>",
"<password>ioc</password>",
"<name>ioc1@localhost</name>",
"<accounttype>1</accounttype>",
"<devicetoken>680</devicetoken>",
"<email>ioc1@localhost</email>"
)

任何信息将对我非常有帮助。 不确定我要去哪里错了谢谢您的帮助

您是否真的要注册(创建)新的(永久)用户,或登录(先前创建的)现有帐户? 还是您不想在没有永久帐户的情况下关心匿名匿名临时登录? 现在,您的ejabberd已配置为接受匿名登录,但是您正在尝试对现有用户进行身份验证。 如果您正在使用XMPPFramework并希望获得临时登录名,则只需使用[xmppStream loginAnonymously:] ,服务器将使用临时ID登录。

但是,如果要使用永久帐户数据库,则需要将auth_method更改为其他名称(请查看ejabberd文档),创建用户(可以在服务器端创建它,或者从客户端注册新用户,或者使用来自其他用户的现有用户数据库)应用程序),然后您才能使用给定的用户名和密码进行身份验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM