function __construct($message) { Exception::__construct($message); LingotekOAuthRequestLogger::addNote('OAuthException2: ' . $message); }
/** * Overrule this method when you want to display a nice page when * the authorization is finished. This function does not know if the authorization was * succesfull, you need to check the token in the database. * * @param boolean authorized if the current token (oauth_token param) is authorized or not * @param int user_id user for which the token was authorized (or denied) * @return string verifier For 1.0a Compatibility */ public function authorizeFinish($authorized, $user_id) { LingotekOAuthRequestLogger::start($this); $token = $this->getParam('oauth_token', true); $verifier = null; if ($this->session->get('verify_oauth_token') == $token) { // Flag the token as authorized, or remove the token when not authorized $store = OAuthStore::instance(); // Fetch the referrer host from the oauth callback parameter $referrer_host = ''; $oauth_callback = false; $verify_oauth_callback = $this->session->get('verify_oauth_callback'); if (!empty($verify_oauth_callback) && $verify_oauth_callback != 'oob') { $oauth_callback = $this->session->get('verify_oauth_callback'); $ps = parse_url($oauth_callback); if (isset($ps['host'])) { $referrer_host = $ps['host']; } } if ($authorized) { LingotekOAuthRequestLogger::addNote('Authorized token "' . $token . '" for user ' . $user_id . ' with referrer "' . $referrer_host . '"'); // 1.0a Compatibility : create a verifier code $verifier = $store->authorizeConsumerRequestToken($token, $user_id, $referrer_host); } else { LingotekOAuthRequestLogger::addNote('Authorization rejected for token "' . $token . '" for user ' . $user_id . "\nToken has been deleted"); $store->deleteConsumerRequestToken($token); } if (!empty($oauth_callback)) { $params = array('oauth_token' => rawurlencode($token)); // 1.0a Compatibility : if verifier code has been generated, add it to the URL if ($verifier) { $params['oauth_verifier'] = $verifier; } $uri = preg_replace('/\\s/', '%20', $oauth_callback); if (!empty($this->allowed_uri_schemes)) { if (!in_array(substr($uri, 0, strpos($uri, '://')), $this->allowed_uri_schemes)) { throw new OAuthException2('Illegal protocol in redirect uri ' . $uri); } } else { if (!empty($this->disallowed_uri_schemes)) { if (in_array(substr($uri, 0, strpos($uri, '://')), $this->disallowed_uri_schemes)) { throw new OAuthException2('Illegal protocol in redirect uri ' . $uri); } } } $this->redirect($oauth_callback, $params); } } LingotekOAuthRequestLogger::flush(); return $verifier; }