2015-03-29 16 views
5

Tôi đang cố gắng tích hợp Amazon Web Services vào ứng dụng của mình nhưng thật ra nó là một thách thức lớn và nó cực kỳ khó chịu.Amazon Cognito iOS

Tôi đang sử dụng Amazon SDK (v2.1.0) dành cho iOS và đây là những gì tôi đang cố gắng để đạt được:

  1. Trong ứng dụng của tôi, tôi có một màn hình đăng ký nơi người dùng của tôi có thể đăng ký ứng dụng của tôi sử dụng Facebook hoặc bằng cách tạo tài khoản
  2. Nếu người dùng muốn tạo tài khoản, tôi dự định sử dụng Amazon Cognito để truy cập an toàn Amazon DynamoDB (thông qua ứng dụng iOS), nơi tôi sẽ lưu trữ email và mật khẩu.

tôi đang cố gắng để có được Amazon Cognito làm việc với đoạn mã sau vào ViewController của tôi, nhưng tôi nhận được con số không cho biến cognitoId. Mã của tôi là dưới đây:

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 
                           identityPoolId:@"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"]; 
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 
                    credentialsProvider:credentialsProvider]; 
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration; 

NSString *cognitoId = credentialsProvider.identityId; //NULL 

Dựa trên tất cả những gì tôi đã giải thích ở trên, tôi đã các câu hỏi sau:

  1. là trường hợp sử dụng của tôi của Amazon Cognito đúng trong trường hợp này?
  2. Tại sao mã ở trên không hoạt động?
  3. Tôi nghĩ rằng vấn đề có thể liên quan đến vai trò iam được định cấu hình trong Hồ bơi nhận dạng. Tôi không chắc chắn vai trò nào để đưa ra về an ninh. Sau khi người dùng đăng ký, ứng dụng sẽ cần sự cho phép để ghi vào DynamoDB của tôi mà không lộ bất kỳ lỗi bảo mật nào. Bất cứ ai có thể cung cấp bất kỳ cái nhìn sâu sắc về điều này?

Tôi đánh giá cao bất kỳ ai có thể trợ giúp. Tôi đang mất trí vì cố gắng làm việc này trong vài ngày qua.

Cảm ơn!

+0

Tôi muốn nói với bạn về trải nghiệm của bạn với Cognito. Vui lòng gửi email cho tôi - email của tôi nằm trên trang tiểu sử stackoverflow của tôi. –

Trả lời

1

Id nhận dạng Cognito không được đặt theo mặc định. Bạn đang thực hiện cuộc gọi đến getIdentityId hoặc làm mới với nhà cung cấp? Nếu không, tôi sẽ thử và xem bạn có nhận được kết quả không.

Đối với các câu hỏi khác của bạn, Cognito hỗ trợ 'nhà cung cấp dịch vụ công cộng' như facebook, google và amazon, cũng như thông tin nhận dạng được nhà phát triển xác thực. Đối với trường hợp được đề xuất của bạn với facebook, bạn có thể dễ dàng sử dụng Cognito ở đó. Bài đăng blog về vai trò và chính sách của Cognito hiện có sẵn here.

Bản sao được xác thực dành cho nhà phát triển có thể là cách hợp lệ (và bảo mật hơn) để triển khai trường hợp sử dụng thứ hai của bạn. Luồng công việc sẽ yêu cầu bạn có một máy chủ kết thúc trở lại, nhưng bạn chỉ có thể cấp quyền truy cập vào bảng db của máy phát điện cho máy chủ đó. Người dùng sẽ đăng nhập, ứng dụng sẽ gửi dữ liệu đó đến máy chủ của bạn, máy chủ đó sẽ xác thực và trả lời bằng thông tin xác thực và sau đó người dùng có thể truy cập các tài nguyên AWS khác của bạn. Bài đăng trên blog mô tả vai trò và chính sách trong ngữ cảnh này có sẵn here và một chi tiết cụ thể về các chi tiết cụ thể và liệt kê ví dụ kết thúc đến cuối có sẵn here.

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