Как работать с AWS-cognito NEW_PASSWORD_REQUIRED Challenge - PullRequest
0 голосов
/ 20 марта 2019

Когда я использую следующий код:

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

Я получаю ответ с session и challengeName :NEW_PASSWORD_REQUIRED.Из этого как сгенерировать AccessToken в AWS-cognito?

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вы можете использовать метод respondToAuthChallenge, чтобы установить новый пароль пользователя и войти в него. Он также должен вернуть accessToken для вас.

Вы могли бы сделать что-то вроде этого:

$result = $this->client->respondToAuthChallenge([
            'ChallengeName' => 'NEW_PASSWORD_REQUIRED',
            'ClientId' => $this->client_id,
            'ChallengeResponses' => [
                'USERNAME' => $username,
                'NEW_PASSWORD' => $password,
            ],
            'Session' => $session,
        ]);
0 голосов
/ 21 марта 2019

Вы должны ответить на этот вызов (responseToAuthChallenge), используя сеанс, возвращенный методом adminInitiateAuth.Этот сеанс является ключевым для ответа, потому что пользователь в это время еще не вошел в систему и действителен в течение 3 минут.После этого вы получите (если сеанс действителен) RefreshToken, AccessToken и IdToken.

...