0

我嘗試使用新的用戶池爲Cognito身份驗證的用戶同步數據。使用Android和網絡驗證的用戶(JavaScript)

從什麼建議here: 「請注意,因爲JavaScript SDK不支持具有客戶端密鑰的應用程序,所以必須取消選中生成客戶端密鑰箱。」

另一方面,對於Android,僅支持具有客戶端密鑰的應用程序。

因此,我在用戶池中添加了2個應用程序,其中一個帶有客戶端密碼,另一個沒有它。

但是,在身份池中,我只能添加一個App Client ID作爲身份驗證提供程序。

所以我得到:「com.amazonaws.services.cognitoidentity.model.NotAuthorizedException:令牌不是來自此身份池的受支持提供程序。」當試圖爲Android應用程序使用經過身份驗證的令牌時。

我做得對嗎,還是我錯過了什麼?

謝謝!

回答

0

想通了。 它可以添加多個(最多100個)的應用程序或「觀衆」通過IAM的OIDC提供者解釋here

所以我成立了OIDC並將其添加爲身份驗證提供者的身份池。

+1

來自Cognito的開發者在這裏。目前Cognito支持多個應用程序客戶端ID,但控制檯不反映它。這個問題的解決方案在我們的積壓工作中,即將推出。同時,有一種選擇是使用CLI更新池,並且應該繼續使用CLI更新池,直到部署該修補程序。 http://docs.aws.amazon.com/cli/latest/reference/cognito-identity/update-identity-pool.html 是的,也可以將用戶池作爲OIDC提供者來集成。 –

0

既然你已經研究出瞭解決辦法,一個額外的想法:

在另一方面爲Android應用程式只與客戶端機密的支持。

Cognito User Pools的Android SDK應該允許您在沒有祕密的情況下處理應用程序,您應該能夠將該值設置爲null。如果您有興趣,請查看sample app瞭解更多詳情。

+0

這根本不是問題。 –

+0

編輯答案使其更加清晰。我沒有試圖回答原來的問題,因爲您已經找到了解決方案,但是爲了未來可能會發現這一點的讀者,指出了一個錯誤的部分。 –