1

我遵循以下tutorial並獲得facebook登錄工作。最後,它打印出很好的accessToken如何發送訪問令牌以訪問AWS服務 - BEGINNER

FB.login(function (response) { 

    // Check if the user logged in successfully. 
    if (response.authResponse) { 

    console.log('You are now logged in.'); 

    // Add the Facebook access token to the Cognito credentials login map. 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
     IdentityPoolId: 'IDENTITY_POOL_ID', 
     Logins: { 
     'graph.facebook.com': response.authResponse.accessToken 
     } 
    }); 

    // Obtain AWS credentials 
    AWS.config.credentials.get(function(){ 
     // Access AWS resources here. 
      console.log('Access Token is '+ AWS.config.credentials.identityId); 
     var s3= new AWS.s3(); 

    }); 

    } else { 
    console.log('There was a problem logging you in.'); 
    } 

}); 

我相信代碼Logins: { 'graph.facebook.com': response.authResponse.accessToken }下面一行將在Cognito註冊accessToken。糾正我,如果我錯了。

我的問題是,我應該保存這個accessToken並把它傳遞當過我與AWS通信服務(例如:DynamoDB寫項目或者同時增加了文件S3)?

如果是的話我該怎麼做? (我幾乎GOOGLE了整個網絡,並沒有發現這個)

**注意:我認爲accessToken的目的是增加一些安全性,當用戶請求訪問AWS服務。那麼在那種情況下,我如何使用accessToken進行驗證?

回答

0

一旦您將Cognito授予Cognito以獲取某些憑據,Cognito會將其註冊到該身份驗證身份並返回憑證。

單憑這些憑證將映射回該令牌,因此您在訪問憑證時只需提供給其他AWS客戶端即可。這就是說,一旦這些憑證已經過期,您將需要讓令牌更加方便,以獲得更多的認證身份。 Cognito需要至少一個鏈接到身份驗證身份的令牌來獲取憑據。

+0

憑證是指'區域/應用程序ID /密鑰'等?如果是的話憑證如何過期? – Illep

+0

憑證,如AWS.config.credentials.get(返回(參見http://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html))的AWS憑證。Cognito返回的憑據僅爲有效的一個小時 –

+0

因此,如果我要訪問'DynamoDB'或'S3',我應該通過在上面發佈的鏈接中給出的內容?如果證書過期了,我會收到通知,如果是這樣?我想再次延長到期日(對不起,所有這些問題,我是一個新手,我一直堅持這個問題一個星期了) – Illep