好的,我現在已經進入了這一天,取得了重大進展,但仍然完全陷入了基本面的困境。帶有Cognito的AWS Lambda API網關 - 如何使用IdentityId訪問和更新UserPool屬性?
我的應用程序使用Cognito用戶池來創建和管理用戶 - 它們在S3上看起來是由他們的IdentityId標識的。我的每個用戶都有自己的S3文件夾,AWS會自動爲他們提供一個與用戶的IdentityId相同的文件夾名稱。
我需要將IdentityId與其他Cognito用戶信息關聯,但無法解決問題。
我需要的關鍵是能夠識別給定IdentityId的用戶名和其他cognito用戶屬性 - 而且這非常困難。
因此,第一場戰鬥是如何在Cognito用戶通過AWS API網關發出請求時獲取IdentityId。最後我得到了解決方案,現在我有一個Cognito用戶,他向API網關發出請求,而我後面的Lambda函數現在擁有IdentityId。這個位有用。
但是我完全難以理解如何訪問存儲在用戶池中的Cognito用戶的信息。我找不到任何明確的信息,並且肯定沒有代碼,顯示如何使用IdentityId來獲取Cognito用戶的屬性,用戶名等。
看來,如果我使用「Cognito用戶池」來授權我方法在API網關,然後身體映射模板可用於將Cognito用戶信息,如子和用戶名和電子郵件地址放入上下文,但我沒有得到IdentityId。
但是,如果我使用AWS_IAM在API網關中授權我的方法,那麼身體映射模板會做相反的事情 - 它給我IdentityId,但不是Cognit用戶字段,例如子和用戶名和電子郵件。
這讓我很瘋狂 - 我如何才能將IdentityId和所有Cognito用戶字段和屬性合併到一個數據結構中?事實上,我似乎只能得到一個或另一個是沒有意義的。
我與你的難度同意,您是否有機會嘗試創建與提供的子級匹配的IAM S3策略? – Aaron