PHP HybridAuth social signin not working at all. Redirecting to ?hauth.start=Facebook&hauth.time
Solution 1
Further to tintinboss's own answer, I found I needed to check for hauth_done
as well (this was for an example testing Facebook):
if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done']))
{
Hybrid_Endpoint::process();
}
This finally got it working - thank you tintinboss for the useful answer!
Solution 2
Alright, I've solved it myself.
As stated before, the documentation was really not good. Here's the solution for anyone who wants to integrate this code in future
Firstly, you have to make your baseurl like this in config.php
"base_url" => "http://yoursite.com/subdomain/index.php", OR
"base_url" => "http://yoursite.com/index.php",
Note that I'm not using www. Don't know why, but it does not work with www.
Now the tricky part, you have to include this in your index.php file
require_once( "PATH_TO_HYBRID/Auth.php" );
require_once( "PATH_TO_HYBRID/Endpoint.php" );
if (isset($_REQUEST['hauth_start']))
{
Hybrid_Endpoint::process();
}
The Endpoint Process is what makes you redirect to a blank page if not provided. And you must add it to the index.php as far as I've tested.
Now the code should work fine :) I'll be happy if it helps someone.
Solution 3
@tintinboss and @dJomp answers sorted me out. however I still needed to get info out of the logged in user, which took me long indeed. Here I share the final version that will get you far away from this awful loop.
$config = require 'config.php';
require_once( "Hybrid/Auth.php" );
require_once( "Hybrid/Endpoint.php" );
if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done'])) {
Hybrid_Endpoint::process();
} else {
try {
$hybridauth = new Hybrid_Auth( $config );
$google = $hybridauth->authenticate( "Google");
$user_profile = $google->getUserProfile();
echo "Hi there! " . $user_profile->email;
} catch( Exception $e ){
echo "Ooophs, we got an error: " . $e->getMessage();
}
}
Solution 4
Hi I have tried all the solution suggestions of this problem but none have reached the solution. I solved the problem like this.
"base_url" => 'http://'.$_SERVER['SERVER_NAME'].'inauth/auth',
The key point here is the server name.In addition, cookies are recording your sessions and you can not preview changes you've made. Clear cookies and try again.
Related videos on Youtube
Comments
-
tintinboss over 1 year
I was trying to make HybridAuth Social Login work on this simple php site. Downloaded HybridAuth and installed it. Then found that even the examples does not work for social login (tried on remote server too.
The normal signin_signup example works fine. But whenever I click the link to login to a social network (i.e, facebook,twitter) it redirects me to (MY_BASE_URL/index.php?hauth.start=Facebook&hauth.time) without showing any login window/error messages at all.
I've carefully read the documentations and other solutions posted here. Adjusted my config.php to have a base url like http://example.com/index.php . But it just does not respond. Is there something I'm missing? I've spent 2 days already on it.
here is my config.php
return array( "base_url" => "http://example.com/index.php", "providers" => array ( // openid providers "OpenID" => array ( "enabled" => false ), "AOL" => array ( "enabled" => false ), "Yahoo" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "Google" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), "Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "xxxxxxxxx", "secret" => "xxxxxxx" ) ), "Twitter" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxxx" ) ), // windows live "Live" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "MySpace" => array ( "enabled" => false, "keys" => array ( "key" => "", "secret" => "" ) ), "LinkedIn" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxx" ) ), "Foursquare" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), ), // if you want to enable logging, set 'debug_mode' to true then provide a writable file by the web server on "debug_file" "debug_mode" => false, "debug_file" => "" );
Can someone please help me? I got a feeling that it does not work very good at all after searching the internet for quite a long. If that's the case, can someone point to a better alternative opensource/free social signin library?
-
kimsal almost 11 yearsThanks. I've no idea why such trivial things as 'working demos' seem to elude people. Yes, I know not every scenario can always be covered, but I'm not sure I would have ever found Hybrid_Endpoint::process() on my own. Also, I'll throw in that for Google, at least, it requires registered redirect urls, and the ?hauth.done=Google needs to be part of your registered redirect with Google, as far as I can tell (only way it worked for me). Again, thanks.
-
Ally over 10 yearsAlso having www in the page url you're trying to test on spanners it as well.
-
Ben Fransen over 8 yearsSpent hours to figure out why I wasn't redirected and only receiving
"class" not found
. I've even removed all .htaccess rules and cleared my auto loading schema to find out I only had to remove 'www.' from the base url... Your answer is highly appreciated! Thank you. -
user20072008 over 8 yearsI did exactly you mentioned it but still not working. It goes localhost/social_process.php#_=_ and stucks there.