步2:服务器使用一个流标记作为响应发送给客户端: xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='c2s_234' from='example.com' version='1.0'> 步3:服务器通知客户端可利用的认证机制: 步4:客户端选择一个认证机制: 步5:服务器发送一个[BASE64]编码挑战给客户端: xmlns='urn:ietf:params:xml:ns:xmpp-sasl'> cmVhbG09InNvbWVyZWFsbSIsbm9uY2U9Ik9BNk1HOXRFUUdtMmhoIixxb3A9ImF1dGgiLGNoYXJzZXQ9dXRmLTgsYWxnb3JpdGhtPW1kNS1zZXNzCg== realm=\ qop=\步5(替换):服务器返回错误给客户端:
步6:客户端发送一个[BASE64]编码响应挑战:
MDAwMDAxLHFvcD1hdXRoLGRpZ2VzdC11cmk9InhtcHAvZXhhbXBsZS5jb20i LHJlc3BvbnNlPWQzODhkYWQ5MGQ0YmJkNzYwYTE1MjMyMWYyMTQzYWY3LGNoYXJzZXQ9dXRmLTgK
步7:服务器发送另一个[BASE64]编码挑战给客户端:
rspauth=ea40f60335c427b5527b84dbabcdfffd 步7(替换):服务器返回错误给客户端:
步10:客户端初始化一个新流给服务器: xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='example.com' version='1.0'> 步11:服务器通过发送流头来响应客户端,伴随有任意另外的特征(或空特征元素): xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='c2s_345' from='example.com' version='1.0'> 6.6服务器到服务器的例子 以下例子显示服务器与服务器使用SASL认证的数据流,正常情况下,是在TLS协商之后(注:以下可替换步骤是由失败情况提供的;他们不是详尽的也不是必要的由数据发送而触发)。 步1:Server1初始化流给Server2: xmlns='jabber:server' xmlns:stream='http://etherx.jabber.org/streams' to='example.com' version='1.0'> 步2:Server2发送一个流标记响应Server1: xmlns='jabber:server' xmlns:stream='http://etherx.jabber.org/streams' from='example.com' id='s2s_234' version='1.0'> 步3:Server2通知Server1可利用的认证机制: 步4:Server1选择一个认证机制: 步5:Server2发送一个[BASE64]编码挑战给Server1: realm=\ qop=\步5(替换):Server2返回错误给Server1 步6:Server1发送[BASE64]编码响应挑战: dXNlcm5hbWU9ImV4YW1wbGUub3JnIixyZWFsbT0ic29tZXJlYWxtIixub25j