<?php 
 
require_once(dirname(dirname(__FILE__)) . '/libextinc/OAuth.php'); 
 
try { 
     
 
 
    $oauthconfig = SimpleSAML_Configuration::getOptionalConfig('module_oauth.php'); 
 
    if(!array_key_exists('oauth_token', $_REQUEST)) { 
        throw new Exception('Required URL parameter [oauth_token] is missing.'); 
    } 
    $requestToken = $_REQUEST['oauth_token']; 
 
    $store = new sspmod_oauth_OAuthStore(); 
    $server = new sspmod_oauth_OAuthServer($store); 
 
    $hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); 
    $plaintext_method = new OAuthSignatureMethod_PLAINTEXT(); 
    $rsa_method = new sspmod_oauth_OAuthSignatureMethodRSASHA1(); 
 
    $server->add_signature_method($hmac_method); 
    $server->add_signature_method($plaintext_method); 
    $server->add_signature_method($rsa_method); 
 
 
    $config = SimpleSAML_Configuration::getInstance(); 
    $session = SimpleSAML_Session::getSessionFromRequest(); 
 
    $as = $oauthconfig->getString('auth'); 
    if (!$session->isValid($as)) { 
        SimpleSAML_Auth_Default::initLogin($as, SimpleSAML_Utilities::selfURL()); 
    } 
 
 
    if (!empty($_REQUEST['consent'])) { 
        $consumer = $store->lookup_consumer_by_requestToken($requestToken); 
     
        $t = new SimpleSAML_XHTML_Template($config, 'oauth:consent.php'); 
        $t->data['header'] = '{status:header_saml20_sp}'; 
        $t->data['consumer'] = $consumer;    // array containint {name, description, key, secret, owner} keys 
        $t->data['urlAgree'] = SimpleSAML_Utilities::addURLparameter( SimpleSAML_Utilities::selfURL(), array("consent" => "yes") ); 
        $t->data['logouturl'] = SimpleSAML_Utilities::selfURLNoQuery() . '?logout'; 
     
        $t->show(); 
     
        exit();    // and be done. 
    } 
 
    $attributes = $session->getAttributes(); 
 
    // Assume user consent at this point and proceed with authorizing the token 
    list($url, $verifier) = $store->authorize($requestToken, $attributes); 
 
 
    if ($url) { 
        // If authorize() returns a URL, take user there (oauth1.0a) 
        SimpleSAML_Utilities::redirectTrustedURL($url); 
    }  
    else if (isset($_REQUEST['oauth_callback'])) { 
        // If callback was provided in the request (oauth1.0) 
        SimpleSAML_Utilities::redirectUntrustedURL($_REQUEST['oauth_callback']); 
     
    } else { 
        // No callback provided, display standard template 
 
        $t = new SimpleSAML_XHTML_Template($config, 'oauth:authorized.php'); 
 
        $t->data['header'] = '{status:header_saml20_sp}'; 
        $t->data['remaining'] = $session->remainingTime(); 
        $t->data['sessionsize'] = $session->getSize(); 
        $t->data['attributes'] = $attributes; 
        $t->data['logouturl'] = SimpleSAML_Utilities::selfURLNoQuery() . '?logout'; 
        $t->data['oauth_verifier'] = $verifier; 
        $t->show(); 
    } 
 
} catch (Exception $e) { 
     
    header('Content-type: text/plain; utf-8', TRUE, 500); 
    header('OAuth-Error: ' . $e->getMessage()); 
 
    print_r($e); 
     
} 
 
 
//  
// $req = OAuthRequest::from_request(); 
// $token = $server->fetch_request_token($req); 
// echo $token; 
 
 |