PHP Classes

File: web/SSO/modules/oauth/www/authorize.php

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/modules/oauth/www/authorize.php   Download  
File: web/SSO/modules/oauth/www/authorize.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 2,826 bytes
 

Contents

Class file image Download
<?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;