1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-02 12:48:26 +02:00

hybridAuth debugging improvements.

This commit is contained in:
Cameron
2015-01-24 02:22:00 -08:00
parent 6a2c29de5e
commit 04f92e5335
4 changed files with 66 additions and 36 deletions

View File

@@ -1542,11 +1542,13 @@ $social_external = array(
"Github" => "https://github.com/settings/applications/new", "Github" => "https://github.com/settings/applications/new",
); );
$testUrl = SITEURL."?route=system/xup/test";
$text .= " $text .= "
<fieldset class='e-hideme' id='core-prefs-sociallogin'> <fieldset class='e-hideme' id='core-prefs-sociallogin'>
<legend>Social Options</legend> <legend>Social Options</legend>
<div class='alert alert-warning'>Note: This section requires further testing</div> <div class='alert alert-warning'>Note: This section requires further testing.<br />You may test with the following URL:
<a href='".$testUrl."' rel='external'>".$testUrl."</a></div>
<table class='table adminform'> <table class='table adminform'>
<colgroup> <colgroup>
<col class='col-label' /> <col class='col-label' />

View File

@@ -82,20 +82,44 @@ class core_system_xup_controller extends eController
public function actionTest() public function actionTest()
{ {
echo 'Login controller<br /><br />'; echo '<h3>Social Login Tester</h3>';
if(getperms('0'))
{
echo e107::getMessage()->addError("Please logout of e107 before testing the new-user login/signup procedure.")->render();
return;
}
if(isset($_GET['lgt'])) if(isset($_GET['lgt']))
{ {
e107::getUser()->logout(); e107::getUser()->logout();
} }
echo 'Logged in: '.(e107::getUser()->isUser() ? 'true' : 'false'); echo 'Logged in: '.(e107::getUser()->isUser() ? '<span class="label label-success">true</span>' : '<span class="label label-danger">false</span>');
$provider = e107::getUser()->getProvider(); $provider = e107::getUser()->getProvider();
if($provider) print_a($provider->getUserProfile()); if($provider) print_a($provider->getUserProfile());
echo '<br /><br /><a href="'.e107::getUrl()->create('system/xup/test?lgt').'">Test logout</a>';
$providers = e107::getPref('social_login', array());
foreach($providers as $key=>$var)
{
if($var['enabled'] == 1)
{
echo '<h3>'.$key.'</h3><ul>';
echo '<li><a href="'.e107::getUrl()->create('system/xup/login?provider='.$key.'&back='.base64_encode(e_REQUEST_URL)).'">Test login only with '.$key.'</a></li>';
echo '<li><a href="'.e107::getUrl()->create('system/xup/signup?provider='.$key.'&back='.base64_encode(e_REQUEST_URL)).'">Test signup/login with '.$key.'</a></li>';
echo "</ul>";
}
// print_a($var);
}
echo '<br /><br /><a href="'.e107::getUrl()->create('system/xup/test?lgt').'">Test logout</a>';
/*
echo '<h3>Facebook</h3>'; echo '<h3>Facebook</h3>';
echo '<br /><a href="'.e107::getUrl()->create('system/xup/login?provider=Facebook').'">Test login with Facebook</a>'; echo '<br /><a href="'.e107::getUrl()->create('system/xup/login?provider=Facebook').'">Test login with Facebook</a>';
echo '<br /><a href="'.e107::getUrl()->create('system/xup/signup?provider=Facebook').'">Test signup with Facebook</a>'; echo '<br /><a href="'.e107::getUrl()->create('system/xup/signup?provider=Facebook').'">Test signup with Facebook</a>';
@@ -103,6 +127,8 @@ class core_system_xup_controller extends eController
echo '<h3>Twitter</h3>'; echo '<h3>Twitter</h3>';
echo '<br /><a href="'.e107::getUrl()->create('system/xup/login?provider=Twitter').'">Test login with Twitter</a>'; echo '<br /><a href="'.e107::getUrl()->create('system/xup/login?provider=Twitter').'">Test login with Twitter</a>';
echo '<br /><a href="'.e107::getUrl()->create('system/xup/signup?provider=Twitter').'">Test signup with Twitter</a>'; echo '<br /><a href="'.e107::getUrl()->create('system/xup/signup?provider=Twitter').'">Test signup with Twitter</a>';
*/
} }
public function actionEndpoint() public function actionEndpoint()

View File

@@ -2,7 +2,7 @@
/** /**
* HybridAuth * HybridAuth
* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
* (c) 2009-2014, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
*/ */
// A service client for the OAuth 2 flow. // A service client for the OAuth 2 flow.
@@ -46,8 +46,8 @@ class OAuth2Client
public function __construct( $client_id = false, $client_secret = false, $redirect_uri='' ) public function __construct( $client_id = false, $client_secret = false, $redirect_uri='' )
{ {
$this->client_id = $client_id; $this->client_id = $client_id;
$this->client_secret = $client_secret; $this->client_secret = $client_secret;
$this->redirect_uri = $redirect_uri; $this->redirect_uri = $redirect_uri;
} }
public function authorizeUrl( $extras = array() ) public function authorizeUrl( $extras = array() )
@@ -74,9 +74,9 @@ class OAuth2Client
"redirect_uri" => $this->redirect_uri, "redirect_uri" => $this->redirect_uri,
"code" => $code "code" => $code
); );
$response = $this->request( $this->token_url, $params, $this->curl_authenticate_method ); $response = $this->request( $this->token_url, $params, $this->curl_authenticate_method );
$response = $this->parseRequestResult( $response ); $response = $this->parseRequestResult( $response );
if( ! $response || ! isset( $response->access_token ) ){ if( ! $response || ! isset( $response->access_token ) ){
@@ -84,35 +84,35 @@ class OAuth2Client
} }
if( isset( $response->access_token ) ) $this->access_token = $response->access_token; if( isset( $response->access_token ) ) $this->access_token = $response->access_token;
if( isset( $response->refresh_token ) ) $this->refresh_token = $response->refresh_token; if( isset( $response->refresh_token ) ) $this->refresh_token = $response->refresh_token;
if( isset( $response->expires_in ) ) $this->access_token_expires_in = $response->expires_in; if( isset( $response->expires_in ) ) $this->access_token_expires_in = $response->expires_in;
// calculate when the access token expire // calculate when the access token expire
if( isset($response->expires_in)) { if( isset($response->expires_in)) {
$this->access_token_expires_at = time() + $response->expires_in; $this->access_token_expires_at = time() + $response->expires_in;
} }
return $response; return $response;
} }
public function authenticated() public function authenticated()
{ {
if ( $this->access_token ){ if ( $this->access_token ){
if ( $this->token_info_url && $this->refresh_token ){ if ( $this->token_info_url && $this->refresh_token ){
// check if this access token has expired, // check if this access token has expired,
$tokeninfo = $this->tokenInfo( $this->access_token ); $tokeninfo = $this->tokenInfo( $this->access_token );
// if yes, access_token has expired, then ask for a new one // if yes, access_token has expired, then ask for a new one
if( $tokeninfo && isset( $tokeninfo->error ) ){ if( $tokeninfo && isset( $tokeninfo->error ) ){
$response = $this->refreshToken( $this->refresh_token ); $response = $this->refreshToken( $this->refresh_token );
// if wrong response // if wrong response
if( ! isset( $response->access_token ) || ! $response->access_token ){ if( ! isset( $response->access_token ) || ! $response->access_token ){
throw new Exception( "The Authorization Service has return an invalid response while requesting a new access token. given up!" ); throw new Exception( "The Authorization Service has return an invalid response while requesting a new access token. given up!" );
} }
// set new access_token // set new access_token
$this->access_token = $response->access_token; $this->access_token = $response->access_token;
} }
} }
@@ -122,10 +122,10 @@ class OAuth2Client
return false; return false;
} }
/** /**
* Format and sign an oauth for provider api * Format and sign an oauth for provider api
*/ */
public function api( $url, $method = "GET", $parameters = array() ) public function api( $url, $method = "GET", $parameters = array() )
{ {
if ( strrpos($url, 'http://') !== 0 && strrpos($url, 'https://') !== 0 ) { if ( strrpos($url, 'http://') !== 0 && strrpos($url, 'https://') !== 0 ) {
$url = $this->api_base_url . $url; $url = $this->api_base_url . $url;
@@ -135,31 +135,31 @@ class OAuth2Client
$response = null; $response = null;
switch( $method ){ switch( $method ){
case 'GET' : $response = $this->request( $url, $parameters, "GET" ); break; case 'GET' : $response = $this->request( $url, $parameters, "GET" ); break;
case 'POST' : $response = $this->request( $url, $parameters, "POST" ); break; case 'POST' : $response = $this->request( $url, $parameters, "POST" ); break;
} }
if( $response && $this->decode_json ){ if( $response && $this->decode_json ){
$response = json_decode( $response ); $response = json_decode( $response );
} }
return $response; return $response;
} }
/** /**
* GET wrapper for provider apis request * GET wrapper for provider apis request
*/ */
function get( $url, $parameters = array() ) function get( $url, $parameters = array() )
{ {
return $this->api( $url, 'GET', $parameters ); return $this->api( $url, 'GET', $parameters );
} }
/** /**
* POST wrapper for provider apis request * POST wrapper for provider apis request
*/ */
function post( $url, $parameters = array() ) function post( $url, $parameters = array() )
{ {
return $this->api( $url, 'POST', $parameters ); return $this->api( $url, 'POST', $parameters );
} }
// -- tokens // -- tokens
@@ -175,12 +175,12 @@ class OAuth2Client
{ {
$params = array( $params = array(
"client_id" => $this->client_id, "client_id" => $this->client_id,
"client_secret" => $this->client_secret, "client_secret" => $this->client_secret,
"grant_type" => "refresh_token" "grant_type" => "refresh_token"
); );
foreach($parameters as $k=>$v ){ foreach($parameters as $k=>$v ){
$params[$k] = $v; $params[$k] = $v;
} }
$response = $this->request( $this->token_url, $params, "POST" ); $response = $this->request( $this->token_url, $params, "POST" );
@@ -215,8 +215,8 @@ class OAuth2Client
} }
if( $type == "POST" ){ if( $type == "POST" ){
curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POST, 1);
if($params) curl_setopt( $ch, CURLOPT_POSTFIELDS, $params ); if($params) curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&') );
} }
$response = curl_exec($ch); $response = curl_exec($ch);
@@ -231,7 +231,7 @@ class OAuth2Client
curl_close ($ch); curl_close ($ch);
return $response; return $response;
} }
private function parseRequestResult( $result ) private function parseRequestResult( $result )

View File

@@ -861,8 +861,10 @@ class e_user_provider
else else
{ {
$this->_config = array( $this->_config = array(
"base_url" => e107::getUrl()->create('system/xup/endpoint', array(), array('full' => true)), "base_url" => e107::getUrl()->create('system/xup/endpoint', array(), array('full' => true)),
"providers" => e107::getPref('social_login', array()) "providers" => e107::getPref('social_login', array()),
"debug_mode" => 'error',
"debug_file" => e_LOG."hybridAuth.log"
); );
} }