i've looked into that before... but the project requirements changed... so all of the following are relative links found on the devise wiki
- this how to allows you to sign in and authenticate with different fields other than the email address
- A Simple Token Authentication Service for Mobile Devices Using Rails 3 and Devise.
you can use the previous tuts in conjunction with some thing like Twilio to send the created custom auth token and authenticate user with phone number other than email.
[UPDATE]
since you mentioned an already working solution, I think this is what you are looking for. Active Model OTP and this blog post it's new and i didn't have the chance to test drive it :D
I also found Two factor authentication Devise extension
[UPDATE Aug/2017]
Based on a project that I was recently working on, I found that Tinfoil/devise-two-factor provides a really good/extensible integration with devise (and is highly customizable)... using the internal ROTP gem, you can provide different length codes based on different authentication methods (APP/SMS) and different window/drift allowed per method without having to write the whole thing from the ground up. (highly recommended if you want full power over complex workflow)