also document the basic items of what users need to use this authserver as an OAuth2...
[authserver.git] / app / token.php
1 <?php
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 // Called with e.g. curl .../token -d 'grant_type=authorization_code&client_id=testclient&client_secret=testpass&code=&state=f00bar&redirect_uri=http%3A%2F%2Ffake.example.com%2F'
7 // Response is always JSON.
8
9 // Include the common auth system files (including the OAuth2 Server object).
10 require_once(__DIR__.'/authsystem.inc.php');
11 if ($settings['piwik_enabled']) {
12   // We do not send out an HTML file, so we need to do the Piwik tracking ourselves.
13   require_once($settings['piwik_tracker_path'].'PiwikTracker.php');
14   PiwikTracker::$URL = ((strpos($settings['piwik_url'], '://') === false) ? 'http://localhost' : '' ).$settings['piwik_url'];
15   $piwikTracker = new PiwikTracker($idSite = $settings['piwik_site_id']);
16   $piwikTracker->doTrackPageView('Token Request');
17 }
18
19 $errors = $utils->checkForSecureConnection();
20
21 if (!count($errors)) {
22   // Handle a request for an OAuth2.0 Access Token and send the response to the client
23   $server->handleTokenRequest(OAuth2\Request::createFromGlobals())->send();
24 }
25 else {
26   print(json_encode(array('error' => 'insecure_connection',
27                           'error_description' => 'Your connection is insecure. Token requests can only be made on secure connections.')));
28 }
29 ?>