[英]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.