[Standards] Multi-stage registrations

Stephen Paul Weber singpolyma at singpolyma.net
Wed Feb 3 15:32:53 UTC 2016


This is in the context of transports, but could apply to account 
registration as well.  Sometimes one needs multiple steps in a registration 
process, usually because of an out-of-band verification that needs to happen 
(think: you give me phone number, I sms you a code, you give me the code.  
I need your phone number in order to send you the code, but now you've 
submitted the form already)

This is not a theoretical use case, I am using the below with a transport 
that I am implementing right now.

Strawman proposal: new XEP that allows XEP-0077 iq results to return a new 
set of fields and/or data form.  Supporting clients see this form in the 
result and display to the user as per usual.  Non-supporting clients report 
"success" because they ignore the form, and the user can re-initiate 
registration with the entity to resume mid-flow.

Example flow for transport registration use case with SMS verification:

== Entity Requests Registration Fields from Host ==

<iq type='get' id='reg1' to='sms.shakespeare.lit'>
   <query xmlns='jabber:iq:register'/>
</iq>

== Host Returns Registration Fields to Entity ==

<iq type='result' id='reg1'>
   <query xmlns='jabber:iq:register'>
     <instructions>
       We will send you a code to verify your phone number.
     </instructions>
     <phone/>
   </query>
</iq>

== Entity Provides Required Information ==

<iq type='set' id='reg2'>
   <query xmlns='jabber:iq:register'>
     <phone>15550000</phone>
   </query>
</iq>

== Host Informs Entity of More Fields Needed ==

<iq type='result' id='reg2'>
   <query xmlns='jabber:iq:register'>
     <instructions>
       Enter the code you received via SMS
     </instructions>
     <password/>
   </query>
</iq>

== Entity Provies Further Information ==

<iq type='set' id='reg3'>
   <query xmlns='jabber:iq:register'>
     <password>123456</password>
   </query>
</iq>

== Host Informs Entity of Successful Registration ==

<iq type='result' id='reg3'/>

-- 
Stephen Paul Weber, @singpolyma
See <http://singpolyma.net> for how I prefer to be contacted
edition right joseph
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://mail.jabber.org/pipermail/standards/attachments/20160203/497649e7/attachment.sig>


More information about the Standards mailing list