Node.js Amazon Cognito错误:尝试执行updateUserAttributes Cognito服务时出错(成员必须满足正则表达式模式:[A-Za-z0-9-=.]和#x2B;])
我试图更新类的属性:AWS.CognitoIdentityServiceProvider 带有节点js 答复是: {[InvalidParameterException:1检测到验证错误:“accessToken”处的值未能满足约束:成员必须满足正则表达式模式:[A-Za-z0-9-=.]+]Node.js Amazon Cognito错误:尝试执行updateUserAttributes Cognito服务时出错(成员必须满足正则表达式模式:[A-Za-z0-9-=.]和#x2B;]),node.js,amazon-web-services,aws-sdk,amazon-cognito,Node.js,Amazon Web Services,Aws Sdk,Amazon Cognito,我试图更新类的属性:AWS.CognitoIdentityServiceProvider 带有节点js 答复是: {[InvalidParameterException:1检测到验证错误:“accessToken”处的值未能满足约束:成员必须满足正则表达式模式:[A-Za-z0-9-=.]+] 消息:“检测到1个验证错误:'accessToken\'处的值未能满足约束:成员必须满足正则表达式模式:[A-Za-z0-9-=.]+', 代码:“InvalidParameterException”,
消息:“检测到1个验证错误:'accessToken\'处的值未能满足约束:成员必须满足正则表达式模式:[A-Za-z0-9-=.]+',
代码:“InvalidParameterException”,
时间:2016年6月23日星期四09:50:15 GMT-0500(COT),
请求ID:'cb98c60f-3951-11e6-a4c2-3d6c71f21f4c',
状态代码:400,
可检索:false,
retryDelay:36.788223031908274}
我做错了什么?CognitoIdentityServiceProvider接受的
AccessToken
不是AWS凭据中的会话令牌。当您使用用户名和密码对用户进行身份验证时,它是Cognito用户池服务(Identity Provider)提供的一种服务
有关使用我们的Cognito用户池JavaScript SDK的说明,请参阅。您是在名称或值中使用“\u”吗?@error2007s是的,我在名称属性中使用自定义:下一个\u标记!为什么?是的,去掉那个“u”它就会work@error2007s不,我改了,同样的错误。但是问题是令牌没有属性!很高兴听到它起作用了。如果你认为这是你所需要的,请接受答案。
// Set credentials
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
});
let CognitoIdentityServiceProvider = AWS.CognitoIdentityServiceProvider();
// Make the call to obtain credentials
AWS.config.credentials.get(function() {
// Credentials will be available when this function is called.
var token = AWS.config.credentials.sessionToken;
var params = {
UserAttributes: [{
Name: 'custom:XXXXXXXX',
Value: 'XXXXXXXX'
}],
AccessToken: token
};
CognitoIdentityServiceProvider.updateUserAttributes(params, function(err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
return callback(false, err.stack);
}
console.log(data);
callback(true, data);
});
});