title: How to use devise gem to login using mobile number and OTP
body: <p>We have a requirement to login using multiple mechanisms and we intend to use the devise gem</p>
  <p>user has the following attributes</p>
  <pre><code> 1. username
   2. email
   3. phone_number
   4. custom_id
   5. password
  </code></pre>
  <p>The following authentication mechanisms should be allowed</p>
  <pre><code> 1. username + password
   2. email + pasword
   3. custom_id + password
   4. phone_number + OTP (sent via SMS)
  </code></pre>
  <p>How do we model this using devise gem</p>
  <pre><code> 1. Does devise allow you to selectively use any option for authentication
   2. What options exist for OTP based authentication
   3. Is there any open source project which supports such customized login options
  </code></pre>