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 log
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.
@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();
}
}
We are using nginx and we fixed it by adding ?$args to our location block. Without it, the request does not pass hauth_done.
location / {
try_files $uri $uri/ /index.php?$args;
}
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!
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.