2015-01-14 7 views
12

В процессе создания приложения для Android я столкнулся с серьезной проблемой управления пользователями.Простая регистрация пользователя с помощью Amazon Cognito

Я вижу все сервисы, которые позволяют пользователям регистрироваться в моем приложении, используя google, facebook, amazon, twitter и т. Д. (Amazon Cognito, Janrain, Google Identity Toolkit).

В идеале я хотел бы использовать Amazon Web Services на протяжении всего моего приложения и, таким образом, должен был бы использовать Amazon Cognito. Однако, насколько я могу судить, Cognito обеспечивает простоту регистрации пользователей через Facebook, Amazon и Google с добавленной способностью сливаться с идентификаторами, прошедшими проверку подлинности.

После нескольких часов исследований по разработке собственной структуры поставщика удостоверений, внедрению протоколов аутентификации и всего этого джаза, я пришел к выводу, что понятия не имею, что я делаю в этой области, и я был бы лучше теперь оставил его в покое.

Все, что я хочу, это разрешить пользователям регистрироваться, чтобы использовать мое приложение с электронным адресом, именем пользователя и паролем, с возможностью позже объединиться со своими социальными учетными записями через Amazon Cognito. Я просто не могу найти никаких прямых ответов нигде.

Итак, как я могу создать простой поток регистрации пользователей, который создает пользователей, которые впоследствии могут быть связаны с другими социальными учетными записями через Amazon Cognito?

ответ

3

Amazon Cognito не является провайдером проверки подлинности, поэтому, если вы хотите зарегистрировать своих пользователей по электронной почте, имени пользователя и паролю, вам необходимо будет реализовать собственный бэкэнд с базой данных для хранения всей этой информации о пользователе. Поскольку вы сказали, что хотите использовать AWS в своем приложении, интеграция вашего бэкэнда с Amazon Cognito позволит вам определять политики, чтобы ваши пользователи могли получать доступ к другим ресурсам в AWS. Примером этого может быть загрузка файлов на S3 непосредственно из вашего приложения с использованием политики, которая позволяет вашим пользователям делать это. Вы сможете связать свои учетные записи с другими пользователями провайдера удостоверений (например, пользователями Facebook), используя Amazon Cognito.

Посмотрите на эту BlogPost, если вы хотите, чтобы лучше понять, как Cognito работает с разработчиками аутентификацией пользователей: http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident

+2

Я был на этом посту в ходе моих поисков. И я понимаю, что Cognito не является поставщиком проверки подлинности. Я думаю, что правильный вопрос: «Как я могу зарегистрировать и аутентифицировать пользователей своим собственным бэкэндом, чтобы облегчить привязку этих пользователей к другим учетным записям через Cognito, когда они этого захотят?» – Gaege

+0

Поскольку я не особо хочу иметь дело с настройкой сервера Oauth, написанием логики конечных точек, заботой о безопасности и т. Д., Можно использовать что-то вроде Parse или Firebase для своих возможностей регистрации/аутентификации пользователя и использовать это как " разработчик аутентифицированной идентичности "интеграции с Cognito? – Gaege

+0

У вас может быть что-то гораздо более простое, чем Oauth (и, кстати, Oauth не является протоколом проверки подлинности [1]), но вам определенно нужно будет написать и запустить некоторый код на вашей стороне. Если вы решите использовать Parse или какой-либо другой провайдер, вам все равно придется вызывать этот Cognito API [2] из вашего кода на стороне сервера, чтобы иметь возможность использовать разработанные аутентифицированные идентификаторы. [1] http://oauth.net/articles/authentication/ [2] http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdTokenForDeveloperIdentity.html –

2

Я был также интересно, как мы можем интегрировать аутентификацию в Amazon Cognito и пришел к выводу, что лучший чтобы использовать службу проверки подлинности.

Мы небольшая компания с очень маленькой командой, поэтому скорость реализации и чистый API были большими факторами. Также стоит. Два первых варианта - DailyCred и LoginRadius.

DailyCred (Нам нравится это лучший)

  • Положительных - Чистый легкий API, $ 25 за 50k пользователей (1M пользователей = ~ $ 500)
  • негативы - Сомнительный, если они все еще будут в бизнесе , но в своем FAQ они сказали, что передадут код с открытым исходным кодом, если они подойдут.

LoginRadius

  • Положительных - Несколько использовать API, разумные цены (1m пользователей = ~ $ 1000)
  • Отрицательных - API не так чисты, как DailyCred

Здесь некоторые другие услуги, которые доступны:

  • Parse - неопределенная модель ценообразования, а также слухи о тайм-аутах
  • StormPath - не уверен в их API. Также немного дорогой.
  • Gigya - Enterprise, слишком большой для меня
  • JanRain - Enterprise, слишком большой для меня
  • AuthRocket - Действительно дорого
  • UserApp.io - больше не доступны

Amazon Cognito можно использовать с вашим собственным аутентифицированным идентификатором пользователя. После регистрации/входа/авторизации пользователя в DailyCred.

Надеюсь, что это поможет.

5

Amazon в последнее время анонсировал user pools, которые работают как полностью управляемый поставщик аутентификации.

Они заботятся обо всех основных логиках, таких как регистрация пользователей, проверка электронной почты, сброс пароля и т. Д. а также предоставляют некоторые дополнительные функции, такие как аутентификация нескольких факторов или проверка номера телефона.

Приятно, что эти пулы пользователей масштабируются до сотен миллионов пользователей, и вы просто используете их так же, как и другие поставщики проверки подлинности (или, конечно, можете их комбинировать). Проверьте this, чтобы узнать, как их настроить.

+2

Сообщение, которое вы связаны показывает, как настроить пул, но не как фактически обрабатывать регистрацию, логин и т. д. Есть ли какие-либо ресурсы, которые показывают, как это сделать? – HEATH3N

+0

Означает ли это, что нам не нужен наш собственный провайдер с собственной базой данных?мы можем просто использовать awas для этого? – batmaci

1

Cognito теперь поддерживает поток SignUp и аутентификации пользователя с новой функцией User Pools.

+1

Это не ответ, пожалуйста, напишите как комментарий – Deep

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/18088071) – anaximander

Смежные вопросы