【问题标题】:AWS Cognito PHP respondToAuthChallenge NEW_PASSWORD_REQUIRED User Attributes MissingAWS Cognito PHP respondToAuthChallenge NEW_PASSWORD_REQUIRED 用户属性缺失
【发布时间】:2022-02-10 05:43:15
【问题描述】:

我正在尝试使用带 NEW_PASSWORD_REQUIRED 的 respondToAuthChallenge 来更改用户的密码。我不断收到“给定属性无效,缺少给定名称”错误。我已经尝试将用户的属性添加到调用中,但我似乎找不到任何关于如何在调用中格式化该数据的文档。

这是原始代码...

$QUERY = $COG_CLIENT->respondToAuthChallenge([
    'ChallengeName'       => 'NEW_PASSWORD_REQUIRED',
    'ClientId'            => $COG_CLIENT_ID,
    'ChallengeResponses'  => [
        'USERNAME'        => $USER_EMAIL,
        'NEW_PASSWORD'    => $USER_NEW_PASS,
        'SECRET_HASH'     => $SEC_HASH,
    ],
    'Session'             => $COG_USER_SESSION,
]);

然后我尝试像这样添加用户属性...

$QUERY = $COG_CLIENT->respondToAuthChallenge([
    'ChallengeName'       => 'NEW_PASSWORD_REQUIRED',
    'ClientId'            => $COG_CLIENT_ID,
    'ChallengeResponses'  => [
        'USERNAME'        => $USER_EMAIL,
        'NEW_PASSWORD'    => $USER_NEW_PASS,
        'SECRET_HASH'     => $SEC_HASH,
        'UserAttributes'  => '{"given_name":"Bob"}',
    ],
    'Session'             => $COG_USER_SESSION,
]);

但我仍然遇到同样的错误。如果我将 UserAttributes 值格式化为一个数组,我会收到一条错误消息,指出需要一个字符串。

有人知道我应该如何传递用户属性吗?我对这个非常迷茫。

【问题讨论】:

    标签: php amazon-web-services amazon-cognito


    【解决方案1】:

    啊,我想我是在尝试了许多不同的变体数小时后才弄明白的……这就是最终奏效的方法。

    $QUERY = $COG_CLIENT->respondToAuthChallenge([
        'ChallengeName'       => 'NEW_PASSWORD_REQUIRED',
        'ClientId'            => $COG_CLIENT_ID,
        'ChallengeResponses'  => [
            'USERNAME'        => $USER_EMAIL,
            'NEW_PASSWORD'    => $USER_NEW_PASS,
            'SECRET_HASH'     => $SEC_HASH,
            'userAttributes.given_name' => 'Bob',
        ],
        'Session'             => $COG_USER_SESSION,
    ]);
    

    我不敢相信这在某处没有记录。

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2021-11-27
      • 2018-04-02
      • 2018-03-25
      • 2021-04-25
      • 2018-07-19
      相关资源
      最近更新 更多