/** 
  * Gets an access token that will be cached using a session. 
  *
  * This method works by first trying to load the token from the user's 
  * session, and, if a saved OAuth token isn't found, this method will send 
  * an API request. The OAuth token will then be saved in session for future
  * use.
  *
  * @return OAuthToken OAuth token that can be used for authorization
  * @throws OAuthException if API request was not successful or if 
  *                        there was a session issue  
  */
 protected function getSessionToken()
 {
     // Try loading token from session
     $token = isset($_SESSION['token']) ? unserialize($_SESSION['token']) : null;
     // load redirect URL
     include __DIR__ . '/../../config.php';
     // No token or token is expired... send token request
     if (!$token || $token->isAccessTokenExpired()) {
         $codeURL = $this->oauthFQDN . '/oauth/authorize';
         $codeRequest = new OAuthCodeRequest($codeURL, $this->clientId, $this->scope, $authorize_redirect_uri);
         $code = $codeRequest->getCode();
         $tokenSrvc = new OAuthTokenService($this->oauthFQDN, $this->clientId, $this->clientSecret);
         $token = $tokenSrvc->getTokenUsingCode($code);
         $_SESSION['token'] = serialize($token);
     }
     return $token;
 }
Ejemplo n.º 2
0
<?php

include __DIR__ . '/../config.php';
require_once __DIR__ . '/../lib/OAuth/OAuthCodeRequest.php';
use Att\Api\OAuth\OAuthCodeRequest;
$scope = "WEBRTCMOBILE";
$codeUrl = $FQDN . '/oauth/v4/authorize';
$codeRequest = new OAuthCodeRequest($codeUrl, $api_key, $scope, $authorize_redirect_uri);
$url = $codeRequest->getCodeLocation();
$arr = array('consent_url' => $url);
echo json_encode($arr);
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
 /**
  * Generate the oauth redirect URL depending on the scope requested by the client.
  * The scope is specified as a parameter in the GET request and passed to the provider
  * library to obtain the appropriate oAuth URL
  *
  * @param {String} scope a comma separated list of services that the app requires access to
  * @param {String} return_url address to redirect the callback to after authcode is obtained
  * @param {String} $custom_param a comma separated value to by pass on-net OR suppress landing page
  *
  * @return {string} Returns the oAuth URL 
  * @method oauthUrl
  *
  */
 public function oauthUrl($scope, $return_url, $custom_param)
 {
     $encoded_return_url = urlencode($return_url);
     $redirect_uri = $this->local_server . "/att/callback.php?scopes=" . $scope . "&returnUrl=" . $encoded_return_url;
     // Create object to get an OAuth Code Location URL
     $oacr = new OAuthCodeRequest($this->base_url . "/oauth/v4/authorize", $this->client_id, $scope, $redirect_uri);
     // Append custom param, if it was sent or is set in the config file
     $oAuthUrl = $oacr->getCodeLocation();
     if ($custom_param != null) {
         if (DEBUG) {
             Debug::init();
             Debug::write("Custom params are: {$custom_param}\n");
             Debug::end();
         }
         $oAuthUrl = $oAuthUrl . '&custom_param=' . $custom_param;
     }
     if (DEBUG) {
         Debug::init();
         Debug::write("OAuth URL for authorize is: {$oAuthUrl}\n");
         Debug::end();
     }
     return $oAuthUrl;
 }
/** 
 * Gets the URL to redirect an application to for authorization.
 *
 * This function uses the parameters specified in the configuration file.
 *
 * @return string URL to redirect for authorization
 */
function getCodeLocation()
{
    $codeUrl = getFqdn() . '/oauth/v4/authorize';
    $codeRequest = new OAuthCodeRequest($codeUrl, CLIENT_ID, SCOPE, AUTHORIZE_REDIRECT_URI);
    return $codeRequest->getCodeLocation();
}