2015-01-14 25 views
12

Trong quá trình xây dựng một ứng dụng Android tôi đã gặp phải vấn đề nghiêm trọng về quản lý người dùng.Đăng ký người dùng đơn giản với Amazon Cognito

Tôi thấy tất cả các dịch vụ địa điểm cho phép người dùng đăng ký trong ứng dụng của tôi bằng google, facebook, amazon, twitter, v.v. (Amazon Cognito, Janrain, Bộ công cụ nhận dạng của Google).

Lý tưởng nhất là tôi muốn sử dụng Dịch vụ web của Amazon trong suốt ứng dụng của mình và, do đó, sẽ cần phải sử dụng Amazon Cognito. Tuy nhiên, theo như tôi có thể nói Cognito chỉ cung cấp cho đăng ký người dùng đơn giản thông qua Facebook, Amazon và Google, với khả năng được thêm vào hợp nhất với danh tính được xác thực của nhà phát triển.

Sau nhiều giờ nghiên cứu phát triển cấu trúc nhà cung cấp danh tính của riêng tôi, triển khai giao thức xác thực và tất cả nhạc jazz đó, tôi đã đi đến kết luận tôi không biết mình đang làm gì ở khu vực đó phục vụ để lại nó một mình cho bây giờ.

Tất cả những gì tôi muốn là cho phép người dùng đăng ký sử dụng ứng dụng của tôi với email, tên người dùng và mật khẩu, với tùy chọn hợp nhất với tài khoản xã hội của họ sau, qua Amazon Cognito. Tôi dường như không thể tìm thấy bất kỳ câu trả lời đơn giản nào ở bất cứ đâu.

Vì vậy, làm cách nào tôi có thể tạo luồng đăng ký người dùng đơn giản để tạo người dùng sau này có thể được liên kết với các tài khoản xã hội khác của họ thông qua Amazon Cognito?

Trả lời

3

Amazon Cognito không phải là nhà cung cấp xác thực, vì vậy nếu bạn muốn đăng ký người dùng bằng email, tên người dùng và mật khẩu, bạn sẽ phải triển khai chương trình phụ trợ của riêng mình, với cơ sở dữ liệu để lưu trữ tất cả thông tin người dùng này. Vì bạn đã nói rằng bạn muốn sử dụng AWS trong ứng dụng của mình, việc tích hợp chương trình phụ trợ của bạn với Amazon Cognito sẽ cho phép bạn xác định chính sách để người dùng của bạn có thể truy cập các tài nguyên khác trong AWS. Một ví dụ về điều này sẽ được tải lên các tập tin để S3 trực tiếp từ ứng dụng của bạn, bằng cách sử dụng một chính sách cho phép người dùng của bạn để làm điều này. Bạn sẽ có thể liên kết tài khoản người dùng của mình với những người dùng nhà cung cấp nhận dạng khác (ví dụ: người dùng Facebook) bằng cách sử dụng Amazon Cognito.

Hãy nhìn vào bài đăng trên blog này nếu bạn muốn hiểu rõ hơn về cách Cognito làm việc với người sử dụng nhà phát triển xác thực: http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident

+2

Tôi đã xảy ra khi đăng bài đó trong quá trình tìm kiếm của tôi. Và tôi hiểu rằng Cognito không phải là nhà cung cấp xác thực. Tôi đoán câu hỏi thích hợp là "Làm cách nào để đăng ký và xác thực người dùng bằng chương trình phụ trợ của riêng tôi để tạo điều kiện liên kết những người dùng đó với các tài khoản khác thông qua Cognito khi họ chọn?" – Gaege

+0

Vì tôi không đặc biệt muốn đối phó với việc thiết lập máy chủ Oauth, viết logic điểm cuối, lo lắng về bảo mật, v.v. có thể sử dụng thứ gì đó như Parse hoặc Firebase cho khả năng đăng ký/xác thực người dùng của họ và sử dụng nó làm " nhà phát triển xác thực danh tính "tích hợp với Cognito? – Gaege

+0

Bạn có thể có thứ gì đó đơn giản hơn Oauth (và nhân tiện, Oauth không phải là giao thức xác thực [1]), nhưng chắc chắn bạn sẽ cần viết và chạy một số mã phụ trợ ở bên cạnh bạn. Nếu bạn quyết định sử dụng Parse hoặc một số nhà cung cấp khác, bạn sẽ vẫn cần phải gọi API Cognito này [2] từ mã phía máy chủ của bạn để có thể sử dụng danh tính được xác thực đã phát triển. [1] http://oauth.net/articles/authentication/ [2] http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdTokenForDeveloperIdentity.html –

2

Tôi cũng tò mò như thế nào chúng ta có thể tích hợp xác thực vào Amazon Cognito và đi đến kết luận rằng tốt nhất sẽ sử dụng dịch vụ xác thực.

Chúng tôi là một công ty nhỏ với một nhóm rất nhỏ, vì vậy tốc độ triển khai và API sạch sẽ là những yếu tố lớn. Ngoài ra chi phí. Hai tùy chọn hàng đầu là DailyCred và LoginRadius.

DailyCred (Chúng tôi thích điều này là tốt nhất)

  • Tích cực - Làm sạch dễ dàng API, $ 25 mỗi 50k người sử dụng (1m người dùng = ~ $ 500)
  • Phủ định - Questionable nếu họ vẫn sẽ có trong kinh doanh , nhưng trong Câu hỏi thường gặp của họ, họ nói họ sẽ bàn giao mã nguồn mở nếu họ đi theo.

LoginRadius

  • Tích cực - Hơi có thể sử dụng API, giá cả hợp lý (1m người dùng = ~ $ 1000)
  • Phủ định - API là không sạch sẽ như DailyCred

Dưới đây là một số dịch vụ khác có sẵn:

  • Phân tích cú pháp - Mô hình định giá âm đạo và các vấn đề về thời gian chờ tin đồn
  • StormPath - Không chắc chắn về API của họ. Ngoài ra một chút đắt tiền.
  • Gigya - Doanh nghiệp, quá lớn đối với tôi
  • JanRain - Doanh nghiệp, quá lớn đối với tôi
  • AuthRocket - Thật đắt
  • UserApp.io - Không còn sẵn

Amazon Cognito thể được sử dụng với userID được xác thực của riêng bạn. Sau khi bạn đăng ký/đăng nhập/xác thực người dùng trong DailyCred.

Hy vọng điều đó sẽ hữu ích.

5

Amazon gần đây đã công bố user pools hoạt động như một nhà cung cấp xác thực được quản lý hoàn toàn.

Chúng xử lý tất cả các logic cơ bản như đăng ký người dùng, xác minh email, đặt lại mật khẩu, v.v. và cũng cung cấp một số tính năng nâng cao hơn như xác thực đa yếu tố hoặc xác minh số điện thoại.

Điều thú vị là các nhóm người dùng này có quy mô lên đến hàng trăm triệu người dùng và bạn chỉ sử dụng chúng theo cách tương tự như bạn đã sử dụng các nhà cung cấp xác thực khác (hoặc bạn có thể kết hợp chúng). Kiểm tra this để xem cách thiết lập chúng.

+2

Bài đăng bạn đã liên kết hiển thị cách thiết lập một hồ bơi, nhưng không phải cách thực sự xử lý đăng ký, đăng nhập, v.v. Có tài nguyên nào cho thấy cách thực hiện điều này không? – HEATH3N

+0

Điều đó có nghĩa là chúng tôi không cần nhà cung cấp riêng của chúng tôi với cơ sở dữ liệu riêng?chúng ta chỉ có thể sử dụng awas cho nó? – batmaci

1

Hiện tại, Cognito hỗ trợ luồng đăng ký và xác thực người dùng với tính năng User Pools mới.

+1

Nó không phải là một câu trả lời, Xin vui lòng đặt nó như là bình luận – Deep

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/18088071) – anaximander

Các vấn đề liên quan