我按照以下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
来验证?
答案 0 :(得分:0)
一旦您通过电话将其提供给Cognito获取一些凭据,Cognito就会将其注册到该服务器,并将返回凭证作用,即经过身份验证的身份。
仅凭这些凭据将映射回该令牌,因此您在访问其他AWS客户端时需要提供的全部凭据就是凭据。话虽这么说,一旦这些凭据到期,您将需要使用该令牌仍然可以获得更多的身份验证身份。 Cognito需要至少一个链接到经过身份验证的标识的令牌才能获取凭据。