我一直試圖讓Google Sign-In通過JS SDK使用Cognito。我一直在閱讀文檔:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.htmlAWS Cognito - JavaScript身份驗證不起作用
下面的代碼位於我的函數中,一旦我從Google獲得回調,它就會運行。我已經確認我通過Google登錄並擁有access_token。根據文檔,我應該只需要角色名稱,如果該角色是通過cognito配置的,所以它可以自動找出池ID。它是什麼。該函數調用get併成功返回。
現在我不明白的是兩兩件事:
1)我不應該看在我的Cognito池一個新的身份,一旦get方法被調用?我沒有通過認知來看到任何登錄信息。什麼時候應該通過儀表板上的cognito看到登錄信息?
2)嘗試現在使用AWS來訪問特定的資源,例如可能讀取S3存儲桶或者由於Auth而導致某些操作失敗,如果問題#1存在問題,則這是有意義的。
我猜我缺少一些簡單的東西,因爲任何幫助將不勝感激。我也看過這個鏈接:http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-configuring.html並嘗試使用WebIdentityToken,但沒有成功。
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: '<POOL ID>',
Logins: {
'accounts.google.com': googleUser.wc.access_token
}
});
// Obtain AWS credentials
AWS.config.credentials.get(function(){
// Credentials will be available when this function is called.
var accessKeyId = AWS.config.credentials.accessKeyId;
var secretAccessKey = AWS.config.credentials.secretAccessKey;
var sessionToken = AWS.config.credentials.sessionToken;
console.log("accessKeyId: " + accessKeyId);
});
我想,也是,我所做的更改到上面的代碼,但是在JS SDK中返回400。即使我刪除了登錄地圖,SDK仍然有400. –
請提供詳細的錯誤消息,您可以看到400以外的地方。還請確保您使用的是Google的ID令牌,如http:// docs所示。 aws.amazon.com/cognito/devguide/identity/external-providers/google/ –
其400 - 錯誤的請求。但隨着你的評論,我能夠挖掘更多,這幫助我找到答案!我將在下面提供答案。感謝斯科特的幫助! –