【问题标题】:How to process with AWS-cognito NEW_PASSWORD_REQUIRED Challenge如何处理 AWS-cognito NEW_PASSWORD_REQUIRED 挑战
【发布时间】:2019-08-11 05:41:57
【问题描述】:

当我使用下面的代码时:

$result = $this->client->adminInitiateAuth([
                'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
                'ClientId' => $this->client_id,
                'UserPoolId' => $this->userpool_id,
                'AuthParameters' => [
                    'USERNAME' => $username,
                    'PASSWORD' => $password,
                ],
            ]);

我收到了sessionchallengeName :NEW_PASSWORD_REQUIRED 的回复。由此如何在 AWS-cognito 中生成AccessToken

【问题讨论】:

    标签: php laravel aws-sdk amazon-cognito aws-php-sdk


    【解决方案1】:

    您可以使用respondToAuthChallenge方法设置用户的新密码并登录。它还应该为您返回accessToken

    你可以这样做:

    $result = $this->client->respondToAuthChallenge([
                'ChallengeName' => 'NEW_PASSWORD_REQUIRED',
                'ClientId' => $this->client_id,
                'ChallengeResponses' => [
                    'USERNAME' => $username,
                    'NEW_PASSWORD' => $password,
                ],
                'Session' => $session,
            ]);
    

    【讨论】:

    • 我们应该在这里添加会话
    • @imlokeshs 我不确定。文档说这不是必需的,但您必须测试并查看是否有必要。
    • 响应对我来说是不确定的。
    • 它会抛出任何异常吗?
    • 是的。它说需要添加会话。
    【解决方案2】:

    您需要使用 adminInitiateAuth 方法返回的会话来响应此质询 (respondToAuthChallenge)。此会话是响应的关键,因为此时用户尚未登录并且有效期为 3 分钟。之后,您将收到(如果会话有效)RefreshToken、AccessToken 和 IdToken。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2021-07-06
      相关资源
      最近更新 更多