Ejemplo n.º 1
0
 /**
  * Returns the current request url
  * @return string
  */
 public static function current_request_url()
 {
     $request_url = SPUtils::url_from_parts(array("host" => $_SERVER["HTTP_HOST"], "scheme" => isset($_SERVER["HTTPS"]) ? "https" : "http", "port" => $_SERVER["SERVER_PORT"], "path" => $_SERVER["SCRIPT_NAME"]));
     $query = "";
     if ($_GET) {
         $query = SPUtils::join_key_values_encode("=", "&", $_GET);
     }
     return rtrim("{$request_url}?{$query}", "?");
 }
Ejemplo n.º 2
0
 /**
  * Alias for execute_request (called with "POST" as the request method, and url encoded data)
  * @param $url
  * @param $data
  * @param $number_redirects
  * @return execute_request result
  */
 function post($url, $data = null, $number_redirects = 0)
 {
     if (is_array($data)) {
         $data = SPUtils::join_key_values_encode("=", "&", $data);
     }
     return $this->execute_request(SPConstants::HTTP_METHOD_POST, $url, $data, $number_redirects);
 }
Ejemplo n.º 3
0
 /**
  * This method assumes authentication has not happened previously
  * Parameters expected: email, password, captcha, extra (where extra is retrieved via GetState() after previous unsucessful attempt, optional or null otherwise)
  * @param string $email
  * @param string $password
  * @param string $captcha
  * @param string $extra
  */
 public function Authenticate()
 {
     $loginparms = func_get_args();
     if ($loginparms) {
         if (is_array(current($loginparms))) {
             $loginparms = array_shift($login_parms);
         }
         if (count($loginparms) > 3 && $loginparms[3]) {
             RestoreState($loginparms[3]);
         }
         if (count($loginparms) > 2 && $loginparms[2]) {
             $this->auth_parms["logincaptcha"] = $loginparms[2];
         }
         if (count($loginparms) > 1 && $loginparms[1]) {
             $this->auth_parms["Passwd"] = $loginparms[1];
         }
         if (count($loginparms) > 0 && $loginparms[0]) {
             $this->auth_parms["Email"] = $loginparms[0];
         }
     }
     if (!$this->auth_parms["Email"] || !$this->auth_parms["Passwd"]) {
         $this->LoginResponse = GoogleAuthResponses::EmailPasswordMissing;
         return false;
     }
     $auth_string = SPUtils::join_key_values_encode("=", "&", $this->auth_parms);
     if (!$this->post(self::$login_url, $auth_string) && (!$this->http_response_code || !$this->http_response_body)) {
         $this->LoginResponse = GoogleAuthResponses::HTTPError;
         return false;
     }
     $response = SPUtils::parse_query(join("&", explode("\n", $this->http_response_body)));
     if ($auth = SPUtils::search_array($response, "auth")) {
         $this->auth_parms = $response;
         $this->auto_redirect_curl = false;
         $this->request_headers["Authorization"] = "GoogleLogin auth={$response[$auth]}";
         return true;
     }
     $this->LoginResponse = isset($response["Error"]) ? $response["Error"] : GoogleAuthResponses::Unknown;
     $this->auth_parms["logintoken"] = isset($response['CaptchaToken']) ? $response['CaptchaToken'] : "";
     $this->CaptchaUrl = self::$captcha_base_url . (isset($response['CaptchaUrl']) ? $response['CaptchaUrl'] : "");
     return false;
 }
Ejemplo n.º 4
0
 public function GetState()
 {
     return SPUtils::join_key_values_encode("=", "&", array_intersect_key($this->__oauth, array_flip($this->include_in_state)));
 }