Dopo aver effettuato correttamente la connessione al server, ad es. dopo un callback di successo perErrore di autenticazione non riuscito - XMPPFramework - non autorizzato
- (void) xmppStreamDidConnect:(XMPPStream *)sender
a volte ottengo un errore di autenticazione, vale a dire. il seguente callback viene chiamata:
- (void) xmppStream: (XMPPStream *) mittente didNotAuthenticate: errore (NSXMLElement *)
Il NSXMLElement
assomiglia a questo:
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/><text>The response provided by the client doesn't match the one we calculated.</text></failure>
Come ho detto, ottengo questo ogni tanto. Ho rintracciato il problema e ho provato diverse cose finora. cose che è mi hanno esaminato e posso confermare finora:
- Il nome utente e la password sono al 100% corrette
- sto usando lo SCRAM-SHA-1 meccanismo di autenticazione (
XMPPSCRAMSHA1Authentication
) - mio il server supporta anche il meccanismo PLAIN e non riesce anche con quello (
XMPPPlainAuthentication
) - Se provo a forzare una disconnessione quando ottengo questo errore (
[xmppStream disconnect]
) e quindi nel callbackxmppStreamDidDisconnect
provo a riaprire il flusso ([xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]
) quindi arrivo in un ciclo infinito b perché l'autenticazione fallisce in modo coerente
Ora, ho esaminato ulteriormente questo aspetto e quando si utilizza il meccanismo SCRAM-SHA-1 sembra che non riesca nella seconda sfida. Il client invia qualcosa (apparentemente valido) al server ma il server non gli piace e lancia l'errore not-authorized
.
Pensieri a nessuno?
hai trovato qualsiasi soluzione che sto affrontando lo stesso problema. – Bittoo