Twilio / Authy API для двухфакторной аутентификации в iOS?
Я копался в документации Twilio и Authy, чтобы выполнить задачу добавления 2FA в приложение для iOS.
Тем не менее, несмотря на предполагаемую простоту этих платформ, я не смог найти ни одного примера проекта или документации, иллюстрирующей, как внедрить 2FA в приложение iOS, все примеры для веб-приложений, сайтов WordPress и т. Д.!
Самый близкий, который я нашел (который все еще требует создания базы данных SQL и т. Д.), Это: https://www.twilio.com/blog/2015/01/mobile-passwordless-sms-authentication-part-1-building-the-api-with-laravel-and-twilio.html
Мой вопрос заключается в следующем: как проще всего добавить 2FA в приложение? Если это Twilio / Authy Может кто-нибудь указать мне направление образца проекта или какой-либо документации, которая лучше всего иллюстрирует эту задачу?
Заранее спасибо!
1 ответ
Если вы хотите включить 2fa с Authy для пользователя из вашего приложения iOS, вам просто нужно отправить запрос с адресом электронной почты и номером телефона пользователя из мобильного приложения в ваше веб-приложение. Оттуда легко включить пользователя в Authy (используя authy-ruby в этом примере):
user = Authy::API.register_user(:email => 'foo@example.com', :cellphone => "123-456-7890", :country_code => "1")
# Then you should store the user.id, associating it to the user record.
На данный момент пользователь зарегистрирован в Authy. Если он использует мобильное приложение Authy, он сможет увидеть новую учетную запись в списке. В противном случае вы можете запросить смс (из вашего веб-приложения) для пользователя всякий раз, когда вы запрашиваете токен для 2fa:
response = Authy::API.request_sms(:id => user.authy_id)
Затем вы должны собрать токен из вашего мобильного приложения, отправить его на свой сервер и оттуда проверить токен с помощью Authy:
response = Authy::API.verify(:id => user.authy_id, :token => 'token-user-entered')
По соображениям безопасности это правильный способ сделать это, так как вам нужно сохранить свой Authy api_key
безопасный, и если вы включите его в мобильное приложение, его можно будет легко декомпилировать для извлечения, и кто-то может злоупотребить вашей учетной записью.