Простая регистрация пользователя с помощью Amazon Cognito
В процессе создания приложения для Android я столкнулся с серьезной проблемой управления пользователями.
Я вижу все сервисы, которые позволяют пользователям регистрироваться в моем приложении, используя google, facebook, amazon, twitter и т.д. (Amazon Cognito, Janrain, Google Identity Toolkit).
В идеале я хотел бы использовать Amazon Web Services на протяжении всего моего приложения и, таким образом, должен был бы использовать Amazon Cognito. Однако, насколько я могу судить, Cognito обеспечивает простоту регистрации пользователей через Facebook, Amazon и Google с добавленной способностью сливаться с идентификаторами, прошедшими проверку подлинности.
После нескольких часов исследований по разработке моей собственной структуры поставщика удостоверений, внедрению протоколов аутентификации и всего этого джаза, я пришел к выводу, что понятия не имею, что я делаю в этой области, и мне будет лучше всего служить оставив его в покое.
Все, что я хочу, это разрешить пользователям регистрироваться, чтобы использовать мое приложение с электронной почтой, именем пользователя и паролем, с возможностью позже объединиться со своими социальными учетными записями через Amazon Cognito. Я просто не могу найти никаких простых ответов в любом месте.
Итак, как я могу создать простой поток регистрации пользователей, который создает пользователей, которые впоследствии могут быть связаны с другими социальными учетными записями через Amazon Cognito?
Ответы
Ответ 1
Недавно Amazon анонсировала пулы пользователей, которые работают как полностью управляемый поставщик проверки подлинности.
Они заботятся обо всех основных логиках, таких как регистрация пользователей, проверка электронной почты, пароль reset и т.д. а также предоставляют некоторые дополнительные функции, такие как аутентификация нескольких факторов или проверка номера телефона.
Приятно, что эти пулы пользователей масштабируются до сотен миллионов пользователей, и вы просто используете их так же, как и другие поставщики проверки подлинности (или, конечно же, их сочетаете). Ознакомьтесь с этим, чтобы узнать, как их настроить.
Ответ 2
Amazon Cognito не является провайдером проверки подлинности, поэтому, если вы хотите зарегистрировать своих пользователей по электронной почте, имени пользователя и паролю, вам придется реализовать собственный бэкэнд с базой данных для хранения всей этой информации пользователя. Поскольку вы сказали, что хотите использовать AWS в своем приложении, интеграция вашего бэкэнда с Amazon Cognito позволит вам определять политики, чтобы ваши пользователи могли получать доступ к другим ресурсам в AWS. Примером этого может быть загрузка файлов на S3 непосредственно из вашего приложения с использованием политики, которая позволяет вашим пользователям делать это. Вы сможете связать свои учетные записи с другими пользователями идентификационных данных (например, пользователями Facebook), используя Amazon Cognito.
Взгляните на этот блогпост, если хотите лучше понять, как Cognito работает с пользователями, прошедшими проверку подлинности: http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident
Ответ 3
Мне также было любопытно, как мы можем интегрировать аутентификацию в Amazon Cognito и пришли к выводу, что лучший способ - использовать службу проверки подлинности.
Мы небольшая компания с очень маленькой командой, поэтому скорость реализации и чистый API были большими факторами. Также стоит. Два первых варианта - DailyCred и LoginRadius.
DailyCred (нам это нравится лучше всего)
- Positives - чистый простой API, 25 долларов США за 50 тыс. пользователей (1 м пользователей = ~ 500 долларов США).
- Отрицательные - сомнительные, если они все еще будут в бизнесе, но в своем FAQ они сказали, что передадут код с открытым исходным кодом, если они подойдут.
LoginRadius
- Положительные стороны - Совместимый API, разумная цена (1 м пользователей = ~ 1000 долларов США)
- Отрицательные - API не так чист, как DailyCred
Вот некоторые другие доступные услуги:
- Анализ - неопределенная модель ценообразования, а также проблемы с тайм-аутом слуха.
- StormPath - не уверен в их API. Также немного дорогой.
- Gigya - Enterprise, слишком большой для меня.
- JanRain - Enterprise, слишком большой для меня.
- AuthRocket - действительно дорого
- UserApp.io - больше не доступен
Amazon Cognito может использоваться с вашим собственным аутентифицированным идентификатором пользователя. После регистрации/входа/аутентификации пользователя в DailyCred.
Надеюсь, что это поможет.
Ответ 4
Cognito теперь поддерживает поток SignUp и Authentication пользователя с новой функцией Пулы пользователей.