diff options
author | nickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-05 20:16:40 +0000 |
---|---|---|
committer | nickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-05 20:16:40 +0000 |
commit | ff54fa54bcfc8d39d92b5e42f0111fed5cd16a12 (patch) | |
tree | 14c99fc2e47ee051952cb8bd3e594bde4c0312f9 /mod/oauth_lib/vendors/oauth/example/server | |
parent | 9577651544d2a912f6eb4b13120948c68a7949fc (diff) | |
download | elgg-ff54fa54bcfc8d39d92b5e42f0111fed5cd16a12.tar.gz elgg-ff54fa54bcfc8d39d92b5e42f0111fed5cd16a12.tar.bz2 |
Changing the name of the oAuth plugin to reflect it's library service status.
Refs #2532
git-svn-id: http://code.elgg.org/elgg/trunk@7015 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/oauth_lib/vendors/oauth/example/server')
13 files changed, 592 insertions, 0 deletions
diff --git a/mod/oauth_lib/vendors/oauth/example/server/INSTALL b/mod/oauth_lib/vendors/oauth/example/server/INSTALL new file mode 100644 index 000000000..249c85e9d --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/INSTALL @@ -0,0 +1,53 @@ +In this example I assume that oauth-php lives in /home/john/src/oauth-php + + +1) Create a virtual host and set the DB_DSN VARIABLE to the DSN of your (mysql) database. + +Example +<VirtualHost *> + ServerAdmin admin@localhost + ServerName hello.local + DocumentRoot /home/john/src/oauth-php/example/server/www + + UseCanonicalName Off + ServerSignature On + + SetEnv DB_DSN mysql://foo:bar@localhost/oauth_example_server_db + + <Directory "home/john/src/oauth-php/example/server/www"> + Options Indexes FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + Allow from all + + <IfModule mod_php5.c> + php_value magic_quotes_gpc 0 + php_value register_globals 0 + php_value session.auto_start 0 + </IfModule> + + </Directory> +</VirtualHost> + + +2) Create the database structure for the server: + +# mysql -u foo -p bar -h localhost < /home/john/src/oauth-php/library/store/mysql/mysql.sql + + + +3) Download and install smarty into the smarty/core/smarty directory: + +# cd /home/john/src/oauth-php/example/server/core +# wget 'http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.tar.gz' +# tar zxf Smarty-2.6.19.tar.gz +# mv Smarty-2.6.19 smarty + + +4) That's it! Point your browser to + + http://hello.local/ + +To get started. + +Arjan Scherpenisse <arjan@mediamatic.nl>, July 2008 diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/init.php b/mod/oauth_lib/vendors/oauth/example/server/core/init.php new file mode 100644 index 000000000..e5bb9de35 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/init.php @@ -0,0 +1,127 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * Global initialization file for the server, defines some helper + * functions, required includes, and starts the session. + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +/* + * Simple 'user management' + */ +define ('USERNAME', 'sysadmin'); +define ('PASSWORD', 'sysadmin'); + + +/* + * Always announce XRDS OAuth discovery + */ +header('X-XRDS-Location: http://' . $_SERVER['SERVER_NAME'] . '/services.xrds'); + + +/* + * Initialize the database connection + */ +$info = parse_url(getenv('DB_DSN')); +($GLOBALS['db_conn'] = mysql_connect($info['host'], $info['user'], $info['pass'])) || die(mysql_error()); +mysql_select_db(basename($info['path']), $GLOBALS['db_conn']) || die(mysql_error()); +unset($info); + + +require_once '../../../library/OAuthServer.php'; + +/* + * Initialize OAuth store + */ +require_once '../../../library/OAuthStore.php'; +OAuthStore::instance('MySQL', array('conn' => $GLOBALS['db_conn'])); + + +/* + * Session + */ +session_start(); + + +/* + * Template handling + */ +require_once 'smarty/libs/Smarty.class.php'; +function session_smarty() +{ + if (!isset($GLOBALS['smarty'])) + { + $GLOBALS['smarty'] = new Smarty; + $GLOBALS['smarty']->template_dir = dirname(__FILE__) . '/templates/'; + $GLOBALS['smarty']->compile_dir = dirname(__FILE__) . '/../cache/templates_c'; + } + + return $GLOBALS['smarty']; +} + +function assert_logged_in() +{ + if (empty($_SESSION['authorized'])) + { + $uri = $_SERVER['REQUEST_URI']; + header('Location: /logon?goto=' . urlencode($uri)); + } +} + +function assert_request_vars() +{ + foreach(func_get_args() as $a) + { + if (!isset($_REQUEST[$a])) + { + header('HTTP/1.1 400 Bad Request'); + echo 'Bad request.'; + exit; + } + } +} + +function assert_request_vars_all() +{ + foreach($_REQUEST as $row) + { + foreach(func_get_args() as $a) + { + if (!isset($row[$a])) + { + header('HTTP/1.1 400 Bad Request'); + echo 'Bad request.'; + exit; + } + } + } +} + +?>
\ No newline at end of file diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/footer.tpl b/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/footer.tpl new file mode 100644 index 000000000..308b1d01b --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/footer.tpl @@ -0,0 +1,2 @@ +</body> +</html> diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/header.tpl b/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/header.tpl new file mode 100644 index 000000000..5046f54b0 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/templates/inc/header.tpl @@ -0,0 +1,2 @@ +<html> + <body> diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/templates/index.tpl b/mod/oauth_lib/vendors/oauth/example/server/core/templates/index.tpl new file mode 100644 index 000000000..7b065537d --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/templates/index.tpl @@ -0,0 +1,13 @@ +{include file='inc/header.tpl'} + +<h1>OAuth server</h1> +Go to: + +<ul> + <li><a href="/logon">Logon</a></li> + <li><a href="/register">Register your consumer</a></li> +</ul> + +Afterwards, make an OAuth test request to <strong>http://{$smarty.server.name}/hello</strong> to test your connection.</p> + +{include file='inc/footer.tpl'} diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/templates/logon.tpl b/mod/oauth_lib/vendors/oauth/example/server/core/templates/logon.tpl new file mode 100644 index 000000000..5ccd432b5 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/templates/logon.tpl @@ -0,0 +1,21 @@ +{include file='inc/header.tpl'} + +<h1>Login</h1> + +<form method="post"> + <input type="hidden" name="goto" value="{$smarty.request.goto}" /> + + <label for="username">User name</label><br /> + <input type="text" name="username" id="username" /> + + <br /><br /> + + <label for="password">Password</label><br /> + <input type="text" name="password" id="password" /> + + <br /><br /> + + <input type="submit" value="Login" /> +</form> + +{include file='inc/footer.tpl'} diff --git a/mod/oauth_lib/vendors/oauth/example/server/core/templates/register.tpl b/mod/oauth_lib/vendors/oauth/example/server/core/templates/register.tpl new file mode 100644 index 000000000..0e28c1584 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/core/templates/register.tpl @@ -0,0 +1,41 @@ +{include file='inc/header.tpl'} + +<h1>Register server</h1> + +<p>Register a server which is gonna act as an identity client.</p> + +<form method="post"> + + <fieldset> + <legend>About You</legend> + + <p> + <label for="requester_name">Your name</label><br/> + <input class="text" id="requester_name" name="requester_name" type="text" value="{$consumer.requester_name|default:$smarty.request.requester_name|escape}" /> + </p> + + <p> + <label for="requester_email">Your email address</label><br/> + <input class="text" id="requester_email" name="requester_email" type="text" value="{$consumer.requester_email|default:$smarty.request.requester_email|escape}" /> + </p> + </fieldset> + + <fieldset> + <legend>Location Of Your Application Or Site</legend> + + <p> + <label for="application_uri">URL of your application or site</label><br/> + <input id="application_uri" class="text" name="application_uri" type="text" value="{$consumer.application_uri|default:$smarty.request.application_uri|escape}" /> + </p> + + <p> + <label for="callback_uri">Callback URL</label><br/> + <input id="callback_uri" class="text" name="callback_uri" type="text" value="{$consumer.callback_uri|default:$smarty.request.callback_uri|escape}" /> + </p> + </fieldset> + + <br /> + <input type="submit" value="Register server" /> +</form> + +{include file='inc/footer.tpl'} diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/hello.php b/mod/oauth_lib/vendors/oauth/example/server/www/hello.php new file mode 100644 index 000000000..8cb94bb1e --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/hello.php @@ -0,0 +1,65 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * An example service, http://hostname/hello. You will only get the + * 'Hello, world!' string back if you have signed your request with + * oauth. + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +require_once '../core/init.php'; + +$authorized = false; +$server = new OAuthServer(); +try +{ + if ($server->verifyIfSigned()) + { + $authorized = true; + } +} +catch (OAuthException $e) +{ +} + +if (!$authorized) +{ + header('HTTP/1.1 401 Unauthorized'); + header('Content-Type: text/plain'); + + echo "OAuth Verification Failed: " . $e->getMessage(); + die; +} + +// From here on we are authenticated with OAuth. + +header('Content-type: text/plain'); +echo 'Hello, world!'; + +?>
\ No newline at end of file diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/index.php b/mod/oauth_lib/vendors/oauth/example/server/www/index.php new file mode 100644 index 000000000..f5cadbe61 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/index.php @@ -0,0 +1,37 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +require '../core/init.php'; + +$smarty = session_smarty(); +$smarty->display('index.tpl'); + +?> diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/logon.php b/mod/oauth_lib/vendors/oauth/example/server/www/logon.php new file mode 100644 index 000000000..5c937b719 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/logon.php @@ -0,0 +1,55 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * Simple logon for consumer registration at this server. + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +require_once '../core/init.php'; + +if (isset($_POST['username']) && isset($_POST['password'])) +{ + if ($_POST['username'] == USERNAME && $_POST['password'] == PASSWORD) + { + $_SESSION['authorized'] = true; + if (!empty($_REQUEST['goto'])) + { + header('Location: ' . $_REQUEST['goto']); + die; + } + + echo "Logon succesfull."; + die; + } +} + +$smarty = session_smarty(); +$smarty->display('logon.tpl'); + +?>
\ No newline at end of file diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/oauth.php b/mod/oauth_lib/vendors/oauth/example/server/www/oauth.php new file mode 100644 index 000000000..e0badcc39 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/oauth.php @@ -0,0 +1,77 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * This file implements the OAuth server endpoints. The most basic + * implementation of an OAuth server. + * + * Call with: /oauth/request_token, /oauth/authorize, /oauth/access_token + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +require_once '../core/init.php'; + +$server = new OAuthServer(); + +switch($_SERVER['PATH_INFO']) +{ +case '/request_token': + $server->requestToken(); + exit; + +case '/access_token': + $server->accessToken(); + exit; + +case '/authorize': + # logon + + assert_logged_in(); + + try + { + $server->authorizeVerify(); + $server->authorizeFinish(true, 1); + } + catch (OAuthException $e) + { + header('HTTP/1.1 400 Bad Request'); + header('Content-Type: text/plain'); + + echo "Failed OAuth Request: " . $e->getMessage(); + } + exit; + + +default: + header('HTTP/1.1 500 Internal Server Error'); + header('Content-Type: text/plain'); + echo "Unknown request"; +} + +?>
\ No newline at end of file diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/register.php b/mod/oauth_lib/vendors/oauth/example/server/www/register.php new file mode 100644 index 000000000..c5785c2c8 --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/register.php @@ -0,0 +1,28 @@ +<?php + +require_once '../core/init.php'; + +assert_logged_in(); + +if ($_SERVER['REQUEST_METHOD'] == 'POST') +{ + try + { + $store = OAuthStore::instance(); + $key = $store->updateConsumer($_POST, 1, true); + + $c = $store->getConsumer($key); + echo 'Your consumer key is: <strong>' . $c['consumer_key'] . '</strong><br />'; + echo 'Your consumer secret is: <strong>' . $c['consumer_secret'] . '</strong><br />'; + } + catch (OAuthException $e) + { + echo '<strong>Error: ' . $e->getMessage() . '</strong><br />'; + } +} + + +$smarty = session_smarty(); +$smarty->display('register.tpl'); + +?>
\ No newline at end of file diff --git a/mod/oauth_lib/vendors/oauth/example/server/www/services.xrds.php b/mod/oauth_lib/vendors/oauth/example/server/www/services.xrds.php new file mode 100644 index 000000000..4c50aa12b --- /dev/null +++ b/mod/oauth_lib/vendors/oauth/example/server/www/services.xrds.php @@ -0,0 +1,71 @@ +<?php + +/** + * oauth-php: Example OAuth server + * + * XRDS discovery for OAuth. This file helps the consumer program to + * discover where the OAuth endpoints for this server are. + * + * @author Arjan Scherpenisse <arjan@scherpenisse.net> + * + * + * The MIT License + * + * Copyright (c) 2007-2008 Mediamatic Lab + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +header('Content-Type: application/xrds+xml'); + +$server = $_SERVER['SERVER_NAME']; + +echo '<?xml version="1.0" encoding="utf-8"?>' . "\n"; + +?> +<XRDS xmlns="xri://$xrds"> + <XRD xmlns:simple="http://xrds-simple.net/core/1.0" xmlns="xri://$XRD*($v*2.0)" xmlns:openid="http://openid.net/xmlns/1.0" version="2.0" xml:id="main"> + <Type>xri://$xrds*simple</Type> + <Service> + <Type>http://oauth.net/discovery/1.0</Type> + <URI>#main</URI> + </Service> + <Service> + <Type>http://oauth.net/core/1.0/endpoint/request</Type> + <Type>http://oauth.net/core/1.0/parameters/auth-header</Type> + <Type>http://oauth.net/core/1.0/parameters/uri-query</Type> + <Type>http://oauth.net/core/1.0/signature/HMAC-SHA1</Type> + <Type>http://oauth.net/core/1.0/signature/PLAINTEXT</Type> + <URI>http://<?=$server?>/oauth/request_token</URI> + </Service> + <Service> + <Type>http://oauth.net/core/1.0/endpoint/authorize</Type> + <Type>http://oauth.net/core/1.0/parameters/uri-query</Type> + <URI>http://<?=$server?>/oauth/authorize</URI> + </Service> + <Service> + <Type>http://oauth.net/core/1.0/endpoint/access</Type> + <Type>http://oauth.net/core/1.0/parameters/auth-header</Type> + <Type>http://oauth.net/core/1.0/parameters/uri-query</Type> + <Type>http://oauth.net/core/1.0/signature/HMAC-SHA1</Type> + <Type>http://oauth.net/core/1.0/signature/PLAINTEXT</Type> + <URI>http://<?=$server?>/oauth/access_token</URI> + </Service> + </XRD> +</XRDS> |