2017-08-08 69 views
0

我想使用Cognito標識池來保護對API網關的訪問(目前我使用Cognito用戶池進行授權,但後來我可能會使用其他提供者,如Facebook等)如何在Javascript sdk中集成AWS Cognito身份池和API網關

從文檔

所以here

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: 'YOUR_IDENTITY_POOL_ID', 
    Logins: { 
    'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': 'some-user-pool-token' 
    } 
}); 
AWS.config.credentials.refresh((error) => { 
    ... 
} 

但使用的API網關(從產生SDK),我需要:

accessKey: 'ACCESS_KEY', 
secretKey: 'SECRET_KEY' 

我的追求離子:

  1. 如何獲得ACCES_KEY和SECRET_KEY?
  2. 我需要依賴到aws sdk的唯一原因是,我需要撥打credentials.refresh。我可以以某種方式做到這一點與aws sdk(並且只有亞馬遜認知身份 - js以及生成的api網關sdk)嗎?

回答

0

1的答案可以找到here

而且它這樣做:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: 'YOUR_IDENTITY_POOL_ID', 
    Logins: { 
    'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': 'some-user-pool-token' 
    } 
}); 
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; 

}); 

所以我想答案2:是的,一個也需要AWS SDK用於獲取證書。

相關問題