Sau khi kết nối thành công với máy chủ, ví dụ: sau khi gọi lại thành công tớiXác thực lỗi không thành công - XMPPFramework - không được ủy quyền
- (void) xmppStreamDidConnect:(XMPPStream *)sender
Tôi đôi khi bị lỗi xác thực, ví dụ: gọi lại sau được gọi là:
- (void) xmppStream: (XMPPStream *) người gửi didNotAuthenticate: (NSXMLElement *) lỗi
Các NSXMLElement
trông như thế này:
<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>
Như tôi đã nói, tôi nhận được điều này một lần trong một thời gian. Tôi đã theo dõi vấn đề này và tôi đã thử một vài thứ cho đến nay. Những điều đó là tôi đã nhìn vào và tôi có thể khẳng định cho đến nay:
- Tên người dùng và mật khẩu là 100% đúng
- Tôi đang sử dụng SCRAM-SHA-1 thẩm định cơ chế (
XMPPSCRAMSHA1Authentication
) - My máy chủ cũng hỗ trợ cơ chế PLAIN và không thành công với (
XMPPPlainAuthentication
) - Nếu tôi cố gắng ngắt kết nối khi gặp lỗi này (
[xmppStream disconnect]
) và sau đó gọi lạixmppStreamDidDisconnect
Tôi cố gắng mở lại luồng ([xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]
) sau đó tôi nhận được vào một vòng lặp vô hạn b làm cho việc xác thực không thành công một cách nhất quán
Bây giờ, tôi đã xem xét kỹ hơn và khi sử dụng cơ chế SCRAM-SHA-1 có vẻ như nó không thành công trong thử thách thứ hai. Máy khách gửi một cái gì đó (có vẻ hợp lệ) đến máy chủ nhưng máy chủ không thích nó và ném lỗi not-authorized
.
Suy nghĩ bất kỳ ai?
bạn có tìm thấy giải pháp nào mà tôi cũng đang gặp phải vấn đề tương tự không. – Bittoo