2017-02-20 190 views
0

有什麼辦法可以在lambda函數中獲取cognito用戶對象? 我的客戶已經發送了身份,我有context.identity.cognitoIdentityId,但我沒有找到任何方法將其「轉換」爲有效的用戶對象。AWS Lambda Cognito訪問

例如,如果我想知道經過身份驗證的用戶用戶名,電子郵件地址或其他cognito屬性,有什麼正確的方法來獲取它?

而這個identityId是用戶的唯一標識符?我的意思是,如果用戶註冊了他們的fb賬戶,那麼在連接他們的twitter帳戶後,身份證件仍然存在?或有新的?如果它有新的我怎麼能連接舊的ID到新的?

感謝

b0c1

回答

1

原來的用戶名/電子郵件不越過聯邦邊界,所以如果您通過Cognito聯合身份,交換Cognito用戶池ID標記爲AWS憑據所有的Id索賠令牌丟失。

如果您將Lambda與API網關配合使用,則可以直接將Cognito User Pools Id令牌與Cognito Authorizer選項一起使用來驗證請求,並且將使用上下文傳入id令牌中的所有聲明。詳情here

不幸的是,這聽起來像是您試圖將多個提供程序鏈接到相同的身份,除非您使用聯合身份驗證,否則這是您無法做到的。但是,要回答你如何在聯合身份驗證中將兩個身份提供者帳戶鏈接在一起的問題,如果您同時在登錄映射中同時傳遞兩個令牌,它將鏈接這兩個身份。

"graph.facebook.com":"facebookToken" 
"accounts.google.com":"googleToken" 

如果你以前從來沒有掛任何一個帳戶,你會得到一個新的ID,如果有鏈接之前,身份將合併,你會得到一個或另一個。

+0

那麼使用cognito認證聯邦身份並通過API網關調用Lambda來解析真實身份? – b0c1