Introducing the new FGlogin commercial edition, an OAuth login system for your website with Facebook and Google. FGLogin is very quick and powerful, sure this helps you to increase your web project registrations. It's definitely a must have login system for every PHP based web projects. Hardly it will take 5 mins for installation. Download Script Live Demo Database CREATE TABLE IF NOT EXISTS `users` The script contains three folders called facebook_lib,google_lib and images with PHP files. facebook_lib //Facebook OAUTH library How it Works Facebook & Google Authentication Flowchart In this script just you have to modify three file. db.php <?php Application setup details click here. Facebook Configuration facebook_lib/config.php <?php Google Configuration google_lib/config.php // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console Step 6 keys // OAuth2 Settings Step 3 keys. In this tutorial, I have explained how to add Login with Facebook, Twitter and Google functionality to your website using PHP. I have used HybridAuth PHP library to achieve this. List of identity providers supported by HybridAuth Library.
Follow the below steps to create Login with Facebook,Twitter and Google widget. Below image explains how hybridAuth library works. Step 1) Download HybridAuth PHP library from Github . Step 2). You need to get Developer API(OAuth) Key and Secret from Facebook, Twitter and Google. Step 3). Create config.php and add below code to the file. $config = array("base_url" => "YOUR_WEBSITE_OAUTH_URL", "providers" => array ( "Google" => array ( "enabled" => true, "keys" => array ( "id" => "YOUR_GOOGLE_API_KEY", "secret" => "YOUR_GOOGLE_API_SECRET" ), ), "Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "FACEBOOK_DEVELOER_KEY", "secret" => "FACEBOOK_SECRET" ), "scope" => "email, user_about_me, user_birthday, user_hometown" //optional. ), "Twitter" => array ( "enabled" => true, "keys" => array ( "key" => "TWITTER_DEVELOPER_KEY", "secret" => "TWITTER_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" => "debug.log", ); Note: Set API key and secrets for Google, Facebook and Twitter. base_url is the OAuth Callback page. In demo page, base_url=”http://hayageek.com/examples/oauth/hybridauth/hybridauth/index.php”. Content of the base_url is. <?php require_once( "Hybrid/Auth.php" ); require_once( "Hybrid/Endpoint.php" ); Hybrid_Endpoint::process(); ?> Note: In Google API OAuth Settings set your redirect URL like this http://hayageek.com/examples/oauth/hybridauth/hybridauth/index.php?hauth.done=Google Step 4). Create login.html and add below code <html> <body> <a href="login-with.php?provider=Facebook">Login With Facebook</a> <a href="login-with.php?provider=Twitter">Login With Twitter</a> <a href="login-with.php?provider=Google">Login With Google</a> </body> </html> Step 5) Create login-with.php and add below code <?php session_start(); include('config.php'); include('hybridauth/Hybrid/Auth.php'); if(isset($_GET['provider'])) { $provider = $_GET['provider']; try{ $hybridauth = new Hybrid_Auth( $config ); $authProvider = $hybridauth->authenticate($provider); $user_profile = $authProvider->getUserProfile(); if($user_profile && isset($user_profile->identifier)) { echo "<b>Name</b> :".$user_profile->displayName."<br>"; echo "<b>Profile URL</b> :".$user_profile->profileURL."<br>"; echo "<b>Image</b> :".$user_profile->photoURL."<br> "; echo "<img src='".$user_profile->photoURL."'/><br>"; echo "<b>Email</b> :".$user_profile->email."<br>"; echo "<br> <a href='logout.php'>Logout</a>"; } } catch( Exception $e ) { switch( $e->getCode() ) { case 0 : echo "Unspecified error."; break; case 1 : echo "Hybridauth configuration error."; break; case 2 : echo "Provider not properly configured."; break; case 3 : echo "Unknown or disabled provider."; break; case 4 : echo "Missing provider application credentials."; break; case 5 : echo "Authentication failed The user has canceled the authentication or the provider refused the connection."; break; case 6 : echo "User profile request failed. Most likely the user is not connected to the provider and he should to authenticate again."; $authProvider->logout(); break; case 7 : echo "User not connected to the provider."; $authProvider->logout(); break; case 8 : echo "Provider does not support this feature."; break; } echo "<br /><br /><b>Original error message:</b> " . $e->getMessage(); echo "<hr /><h3>Trace</h3> <pre>" . $e->getTraceAsString() . "</pre>"; } } ?> Step 6) Create logout.php with the below code. <?php session_start(); session_destroy(); header("Location: login.html"); ?> |