Gush\ThirdParty\Github\GitHubConfigurator::handle2fa PHP Метод

handle2fa() приватный Метод

private handle2fa ( Github\Client $client, Github\Exception\TwoFactorAuthenticationRequiredException $e )
$client Github\Client
$e Github\Exception\TwoFactorAuthenticationRequiredException
    private function handle2fa(Client $client, TwoFactorAuthenticationRequiredException $e)
    {
        $authenticationAttempts = 0;
        $authorization = [];
        $type = trim($e->getType());
        // Stupid API gives text with spaces
        $message = ['Username and password were correct.', 'Two factor authentication is required to continue authentication.'];
        if ('app' === $type) {
            $message[] = 'Open the two-factor authentication app on your device to view your authentication code and verify your identity.';
        } elseif ('sms' === $type) {
            $message[] = 'You have been sent an SMS message with an authentication code to verify your identity.';
        }
        $this->styleHelper->note($message);
        // We already know the password is valid, we just need a valid code
        // Don't want to fill in everything again when you know it's valid ;)
        while (!isset($authorization['token'])) {
            if ($authenticationAttempts > 0) {
                $this->styleHelper->error('Two factor authentication code was invalid, please try again.');
            }
            try {
                $code = $this->styleHelper->ask('Two factor authentication code', null, [$this, 'validateNoneEmpty']);
                $authorization = $this->createAuthorization($client, $code);
            } catch (TwoFactorAuthenticationRequiredException $e) {
                // No-op, continue the loop, try again
            } catch (\Exception $e) {
                $this->styleHelper->error($e->getMessage());
                $this->styleHelper->newLine();
            }
            ++$authenticationAttempts;
        }
        return $authorization;
    }