簡體   English   中英

在移動應用程序中使用AWS Cognito Signup時,推薦的架構是什么?

[英]What is the recommended architecture when using AWS Cognito Signup in a mobile app?

我正在嘗試使用AWS Cognito在我的移動應用程序中進行身份驗證。

目前,我的應用程序后端將所有用戶詳細信息存儲在MySQL的User表中,並且與其他表具有關系(例如,使用Orders表等)。 當我使用Cognito注冊時,是否必須先使用cognito對用戶進行注冊,然后再次將這些詳細信息傳遞給我的后端,以便它可以將詳細信息存儲在我的User表中?

當我將詳細信息傳遞給應用程序的后端(例如,因為我的服務器已關閉)時,如何處理認知注冊正確通過但失敗的情況?

這里推薦的架構是什么?

當我使用Cognito注冊時,是否必須先使用Cognito對用戶進行注冊,然后再次將這些詳細信息傳遞給我的后端,以便它可以將詳細信息存儲在User表中?

是的,將用戶詳細信息保存在用戶表中也很有用。 在數據庫中查詢應用程序功能時將使用它。

當我將詳細信息傳遞給應用后端時(例如,由於服務器關閉),我們如何處理Cognito注冊正確通過但失敗的情況?

以容錯的方式執行此操作,在用戶注冊(預注冊)之前使用Cognito的Lambda觸發器 ,Lambda函數將包含用於更新數據庫的代碼,如果成功,Cognito將繼續進行注冊。

當我使用Cognito注冊時,是否必須先使用cognito對用戶進行注冊,然后再次將這些詳細信息傳遞給我的后端,以便它可以將詳細信息存儲在我的User表中?

AWS Congnito提供了在某些Cognito事件上調用Lambda函數的選項,請參閱https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers。 html

在UserPool觸發器中,您可以定義“預注冊” lambda,當用戶提交其信息進行注冊時將調用該lambda。

當我將詳細信息傳遞給應用程序的后端(例如,因為我的服務器已關閉)時,如何處理認知注冊正確通過但失敗的情況?

根據文檔:

Amazon Cognito invokes Lambda functions synchronously. When called, your Lambda function must respond within 5 seconds. If it does not, Amazon Cognito retries the call. After 3 unsuccessful attempts, the function times out. This 5-second timeout value cannot be changed

有幾種選擇:

  • 如果需要容錯,則可以使用SQS來確保可靠的交付。 在這種情況下,您將需要讀取和處理隊列

  • 您可以實現自己的錯誤處理(例如,存儲,重試,發送郵件等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM