如何使用 AWS-cognito 进行处理 NEW_PASSWORD_REQUIRED 挑战

iml*_*shs 7 php laravel aws-php-sdk amazon-cognito aws-sdk

当我使用下面的代码时:

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

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

Del*_*lan 9

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

你可以这样做:

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