使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
Login in with Facebook but still getting: "Unauthenticated access is not supported for this identity pool"
我正在为一个使用AWS的WebApp工作。我正试图从DynamoDB表中获取项目,但收到错误"此身份池不支持未经身份验证的访问"。我不希望我的应用程序有未经身份验证的用户,但在调用DynamoDB查询之前我已登录。有人能帮我吗?这是我的代码:
function facebookLogin () {
FB.login(function (response) {
if (response.authResponse) { // logged in
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'myActualPoolId'
});
AWS.config.region = 'us-east-1';
AWS.config.credentials.params.logins = {}
AWS.config.credentials.params.logins['graph.facebook.com'] = response.authResponse.accessToken;
AWS.config.credentials.expired = true;
console.log("Importing drivers into DynamoDB. Please wait.");
var drivers = JSON.parse('[{"userId": "4","driverId": "4d","ratingValue": 3,"truckId": "4"},{"userId": "5","driverId": "5d","ratingValue": 2,"truckId": "5"}]');
drivers.forEach(function(driver) {
var params = {
TableName: "myActualTableName",
Item: {
"userId": driver.year,
"driverId": driver.title,
"ratingValue": driver.info,
"truckId": driver.truckId
}
};
var docClient = new AWS.DynamoDB.DocumentClient();
docClient.put(params, function(err, data) {
if (err) {
console.error("Unable to add driver", driver.userId, ". Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("PutItem succeeded:", driver.userId);
}
});
});
} else {
console.log('There was a problem logging you in.');
}
});
}
如果有任何帮助,我将不胜感激。谢谢
你非常接近。Cognito凭据提供商延迟获取凭据,因此当您设置登录时,您并没有调用将登录链接到身份,因此对Dynamo的调用是使用未经身份验证的id进行的。Cognito开发指南提供了如何做到这一点的具体示例,相关示例如下:
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.
});
} else {
console.log('There was a problem logging you in.');
}
});
相关文章:
- 任何浏览器都不支持javascript函数
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- 您的平台不支持RxJS-Array.observe
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- 415(不支持的媒体类型)错误
- 字符串替换-不支持格式字符'}'
- CSS3卡翻转动画,检测是否不支持
- IE中不支持JQuery window.location.hash
- javascript表单字段submit:Object dos'在IE8中不支持此属性或方法
- 对象不支持对象IE 8
- 不支持Three.js FBX二进制格式
- 使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
- 如何在不支持HTML字符的邮件正文中发送%签名
- 在粘贴到文本字段Jquery时检查并突出显示不支持的特殊字符
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- JSHint 错误“对象不支持此属性或方法”用于 javascript 闭包
- 对象不支持属性或方法“确认”
- 对象不支持属性或方法“jscomp_symbol_iterator0”