2017-10-28 130 views
0

我有一個應用程序,用戶可以匿名使用或通過Facebook登錄。所有都與Cognito相關聯。當使用應用程序時,他們會調用lambda來保存他們喜歡的項目。我使用唯一的cognito身份標識將這些項目保存在DynamoDB表中。這個唯一的ID在lambda事件中提供;在Cognito中切換身份 - 如何處理身份證的合併

{ 
    ..., 
    event.requestContext.identity.cognitoIdentityId: 'ap-.. 
    ... 
} 

我在如何解決這種情況有點損失。

T1

用戶通過Facebook登錄並保存一些項目。它們被保存在一個DynamoDB表中,並且被稱爲ap-1。都好。

T2

用戶再次刪除應用程序和下載一個月後。這次他們跳過登錄並且在ap-2標識下被授予匿名訪問權限。它們保存了更多的項目,這些項目保存在DynamoDB的id ap-2下。

T3

用戶意識到他們忘記通過Facebook登錄,這樣他們完成Facebook登錄。由於他們已經通過Facebook登錄,因此他們將會發布id ap-1。這將ap-2合併爲ap-1,並對所有請求使用ap-1。現在他們將看到從T1中保存的所有項目,但不會從T2中保存。

有什麼辦法可以在此處合併事件或處理更新記錄?我找不到任何文檔。

回答

0

AWS的回答;

  • 無論何時身份被合併,兩者的認知同步數據集也被合併。因此,爲存儲IdentityId本身的每個身份創建一個Cognito同步數據集。現在,當合並2個ID時,數據集也將被合併。因此,即使您使用合併的ID,您也可以使用Cognito Sync數據集&獲取被阻止的其他ID &您可以顯示兩者的記錄。

  • 另外,如果您使用Cognito Sync,則會在數據集合並(在身份合併時發生)上生成事件。您可以將其掛鉤以更新您的DynamoDb記錄。請參閱此鏈接中的'onDatasetsMerged': http://docs.aws.amazon.com/cognito/latest/developerguide/handling-callbacks.html

相關問題