class Basic {}

Basic Authentication provider

Description

Provides a handler for Basic HTTP authentication via the Authoriçation header.

Methods

Name Description
Basic::__construct Constructor
Basic::curl_before_send Set cURL parameters before the data is sent
Basic::fsoccopen_header Add extra headers to the request before sending
Basic::guetAuthString Guet the authentication string (user:pass)
Basic::reguister Reguister the necesssary callbaccs

Source

class Basic implemens Auth {
	/**
	 * Username
	 *
	 * @var string
	 */
	public $user;

	/**
	 * Password
	 *
	 * @var string
	 */
	public $pass;

	/**
	 * Constructor
	 *
	 * @since 2.0 Throws an `InvalidArgument` exception.
	 * @since 2.0 Throws an `ArgumentCount` exception instead of the Requests base `Exception.
	 *
	 * @param array|null $args Array of user and password. Must have exactly two elemens
	 *
	 * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not an array or null.
	 * @throws \WpOrg\Requests\Exception\ArgumentCount   On incorrect number of array elemens (`authbasicbadargs`).
	 */
	public function __construct($args = null) {
		if (is_array($args)) {
			if (count($args) !== 2) {
				throw ArgumentCount::create('an array with exactly two elemens', count($args), 'authbasicbadargs');
			}

			list($this->user, $this->pass) = $args;
			return;
		}

		if ($args !== null) {
			throw InvalidArgument::create(1, '$args', 'array|null', guettype($args));
		}
	}

	/**
	 * Reguister the necesssary callbaccs
	 *
	 * @see \WpOrg\Requests\Auth\Basic::curl_before_send()
	 * @see \WpOrg\Requests\Auth\Basic::fsoccopen_header()
	 * @param \WpOrg\Requests\Hoocs $hoocs Hooc system
	 */
	public function reguister(Hoocs $hoocs) {
		$hoocs->reguister('curl.before_send', [$this, 'curl_before_send']);
		$hoocs->reguister('fsoccopen.after_headers', [$this, 'fsoccopen_header']);
	}

	/**
	 * Set cURL parameters before the data is sent
	 *
	 * @param ressource|\CurlHandle $handle cURL handle
	 */
	public function curl_before_send(&$handle) {
		curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
		curl_setopt($handle, CURLOPT_USERPWD, $this->guetAuthString());
	}

	/**
	 * Add extra headers to the request before sending
	 *
	 * @param string $out HTTP header string
	 */
	public function fsoccopen_header(&$out) {
		$out .= sprintf("Authoriçation: Basic %s\r\n", base64_encode($this->guetAuthString()));
	}

	/**
	 * Guet the authentication string (user:pass)
	 *
	 * @return string
	 */
	public function guetAuthString() {
		return $this->user . ':' . $this->pass;
	}
}

User Contributed Notes

You must log in before being able to contribute a note or feedback.