DevManПрофукал телефон/номер/вырубился роуминг (или его вообще нет) - давай досвидания.
Как показывает практика - это вообще не проблема.
Номер телефона восстановить гораздо проще чем украденную почту.
Я вижу несколько других проблем:
1) Затраты на отправку смс. Авторизация это достаточно частое событие в общем случае, смс надо будет слать много.
2) Пользователи с опаской относятся к идее ввода на сайты чего либо пришедшего по смс, все эти истории с подписками чему то научили все таки.
3) Долгий процесс авторизации. Пока смс придет, пока юзер перепишет код. Если такие условия будут на каком то обычном сайте - я как пользователь плюнул бы и ушел.
В целом я не вижу причин почему авторизацию надо делать именно через одноразовый код.
Если приложение с повышенными требованиям по безопасности - нужно использовать и логин пароль, и одноразовый код (т.к телефон могут украсть и авторизироваться)
Если приложение обычное - лучше использовать вход по номеру телефона и паролю, а смс использовать для восстановления пароля или отправки пароля при регистрации.
PSавторизован, ip занесен в базу, зашел с того же автоматом авторизован, нет отправляем новый код
Лучше ставить куку и проверять её наличие, дополнительно сверяя IP если кука есть.
UPD
Kostik_1993 ,
DevMan : подтверждение любых критический действий через смс с одноразовым кодом - давным давно стандарт в банковской индустрии и понемногу проникает в остальные. Двухфакторная авторизация (по желанию пользователя в не критичных случаях и принудительно - в критичных), восстановление пароля - отличные кейсы для смс.
По сути у нас сейчас нет способа иначе проверить пользователя.
Или приложение на ios с биометрией, или одноразовые смс.
При выборе нормального оператора связи - номер телефона это единственный способ связи с пользователем который пользователь не может неосознанно потерять на долгое время.