如何发送访问令牌以访问AWS服务 - BEGINNER

时间:2016-08-04 17:49:05

标签: facebook amazon-web-services amazon-s3 amazon-cognito amazon-cognito-facebook

我按照以下tutorial进行了facebook登录。最后它打印出accessToken,这很棒。

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 }会在accessToken中注册Cognito。如果我错了,请纠正我。

我的问题是,我应该保存此accessToken并在我与AWS服务进行通信时传递它(例如:DynamoDB写入项目或者在添加文件时S3)?

如果是这样我该怎么办? (我几乎用Google搜索了整个网络,但没有发现这个)

**注意:我认为accessToken的目的是在用户请求访问AWS服务时添加一些安全性。那么在这种情况下如何使用accessToken来验证?

1 个答案:

答案 0 :(得分:0)

一旦您通过电话将其提供给Cognito获取一些凭据,Cognito就会将其注册到该服务器,并将返回凭证作用,即经过身份验证的身份。

仅凭这些凭据将映射回该令牌,因此您在访问其他AWS客户端时需要提供的全部凭据就是凭据。话虽这么说,一旦这些凭据到期,您将需要使用该令牌仍然可以获得更多的身份验证身份。 Cognito需要至少一个链接到经过身份验证的标识的令牌才能获取凭据。