我有以下 Node js 代码,应列出 DynamoDB 表中的所有项目,
import * as dynamoDbLib from "../../libs/dynamodb-lib";
import { success, failure } from "../../libs/response-lib";
export async function main(event, context) {
const params = {
TableName: "brands",
KeyConditionExpression: "brandId = :brandId",
ExpressionAttributeValues: {
":brandId": ''
}
};
try {
const result = await dynamoDbLib.call("query", params);
return success(result.Items);
} catch (e) {
console.log(e);
return failure({ status: false });
}
}
Run Code Online (Sandbox Code Playgroud)
id 采用 uuid 格式,当从我的节点 js 插入时,使用以下命令导入:
import uuid from "uuid";
Run Code Online (Sandbox Code Playgroud)
然后插入到表中,如下所示:
brandId: uuid.v1()
Run Code Online (Sandbox Code Playgroud)
现在,当我查询表中的项目时,当且仅当我在表达式属性值中硬编码记录的 uuid(必须指定 KeyConditions 或 …
我正在尝试为 Cognito 实现一个 Spring Boot 后端,我设法创建一个并执行登录,登录后我需要输入新密码才能更改默认密码,所以我已经提交了我的请求,但出现了异常说:
Invalid attributes given, address is missing.
Run Code Online (Sandbox Code Playgroud)
我尝试将地址作为字符串和 json 对象发送,但发生了相同的异常。
我已经检查了我的认知池中的读写权限,它们必须是可写的!
那么关于这个问题有什么建议吗?
AWS cognito 池地址属性无法作为请求中的对象或字符串发送,它始终返回以下异常:
Invalid attributes given, address is missing (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: InvalidParameterException; Request ID: 638dd0e5-2d76-11e9-839d-2b2efb147c0b)
Run Code Online (Sandbox Code Playgroud)
第一次尝试是发送与地址无关的请求,它返回相同的异常,然后我再次将其添加为字符串和相同的异常,然后我尝试将其作为对象发送,并且相同发生了。
关于如何发送属性有什么建议吗?
这是我的实现方式:
Map<String, String> challengeResponses = new HashMap<String, String>();
challengeResponses.put(USERNAME, passwordRequest.getUserName());
challengeResponses.put(PASSWORD, passwordRequest.getOldPassword());
challengeResponses.put(NEW_PASSWORD, passwordRequest.getNewPassword());
challengeResponses.put("ADDRESS", "test");
AdminRespondToAuthChallengeRequest changeRequest = new AdminRespondToAuthChallengeRequest()
.withChallengeName(ChallengeNameType.NEW_PASSWORD_REQUIRED).withChallengeResponses(challengeResponses).withClientId(clientID).withUserPoolId(poolID)
.withSession(sessionString);
System.out.println(changeRequest.toString());
AdminRespondToAuthChallengeResult challengeResponse = mIdentityProvider.adminRespondToAuthChallenge(changeRequest);
Run Code Online (Sandbox Code Playgroud)
这是我要发送的请求:
{UserPoolId: eu-central-1_RZxg4jT2t,ClientId: 2cdjo5ljk130db1mltjnmv128p,ChallengeName: NEW_PASSWORD_REQUIRED,ChallengeResponses: {address=test, PASSWORD=test!, NEW_PASSWORD=test, USERNAME=test},Session: 144WvRkekrIojcPQGDBBu3XsadMBauwQcAJ3M3JVMxD-CY0rCizK1g4RnNuaNN4b1EJMUlrvSnyd21pAP3zFkIlEFXse1MlOLWaGUQIaIygTzX33Y2no0cmfK2-h88yjiKN5-MQZaK6tmvszCuATmOQCR_OK1qLIDYlp1kKGPM_EpBT-br-e5DL9SEF8XIY5wLWGHYWxo4BUuJAIZpTJ8PpD3ROa46ac5w79lhHIK1QZj13f4G84eVz4X8nwiHgLEGgbUOOpoDBC85KSQan8lb-vfPsHEvpoStFy7_0zgRmJ910DubJXJaiS2IjutBr5txDDaSnTl9Zt4G-_NP6_8E0c5JnXIXZymR9nSSYNP7seHXC7HLtFX6Tbu8XWJlLCtKVc8gXN6j0XTzB3hfu-0zGFc3tJ1sQ6iQtLFupuD9C8HYWP6KH_9v2PlUrGc01uU_OOQx5lLaHbNrOvb4evlx9fovM0B6FuPLfUgNmc8aKGZ0Rw55t-aExpJJ_AY2E42C_RWXVX5YUFZTaRi8OvskQLLlyVt0uWV8w1HRc0uGJc5drTK4c7U7TDCaD2-tMiA5TwlpsdCAxv-kRKfMpXN2D6rzzB9An6tis3n9olV5W0yK-KKB1ietx5C-l-HewPBVz9_g-1ggBvwh3qVYjKe1UHcpd5c8SM8kjcwjwy_8fGphYHR4sZBa5zftyT7dYktKzpJsH8HzbZ4Q8WZOKcGqtyeCzkqZuO0LanSL-6yKlGWPEA4tGUhjvT-mWyPEMg576UMPAcWiO6fV-yUVBG5V3OSRpR00NasyFpmTy8U29XI7bfXUMmgY3-6h4nPgaObi25jnmyhDcp2N4MQQl45d0PvmvxIx7huPIzbVC5NNq7tPg6V4H_88cIb81p4gJZ_FITeeSgVWIYRFSoY7vR4DLL9qS3Ea_pAxaENA,}
Run Code Online (Sandbox Code Playgroud)