2014-10-31 12 views
6

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ại xmppStreamDidDisconnect 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?

+0

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

Trả lời

0

Bạn phải kiểm tra tên người dùng và Mật khẩu của mình. Nếu bạn nhập sai tên người dùng và mật khẩu để xác thực/Đăng nhập thì phương thức này didNotAuthenticate sẽ được gọi là

Các vấn đề liên quan