What about SMS tokens?
Using the SMS protocol to send authentication codes is generally not considered secure, since the mobile phone network is not well encrypted. Most use cases can be covered either by using an app on your user's smart phone, or a hardware token.