9lessons programming blog
Loading Search
9lessons Bring Friends
Wall Script
Follow Me:
Tuesday, March 5, 2013

Oauth Login for Linkedin, Facebook, Google and Microsoft

Introducing the new light weight OAuth Login commercial edition, an OAuth login system for your website with Facebook, Google, Microsoft and Linkedin. OAuth Login 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 10 mins for installation.

Login with Facebook and Google.


Download Script     Live Demo

Database
Users table database design.
CREATE TABLE IF NOT EXISTS `users`
(
id INT(11) NOT NULL AUTO_INCREMENT,
email VARCHAR(200) ,
name VARCHAR(200) ,
first_name VARCHAR(200) ,
last_name VARCHAR(200) ,
gender VARCHAR(10) ,
birthday VARCHAR(20) ,
location VARCHAR(200) ,
hometown VARCHAR(200) ,
bio TEXT,
relationship VARCHAR(30) ,
timezone VARCHAR(10) ,
provider VARCHAR(10) ,
provider_id INT(30) ,
picture TEXT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

The script contains three folders called facebook_lib, google_lib, microsoft_lib, linkedin_lib and images with PHP files.
facebook_lib //Facebook OAUTH library
-- config.php //Facebook app configuration file.
google_lib //Google OAUTH library
-- config.php //Google app configuration file.
microsoft_lib //Microsoft OAUTH library
-- config.php //Microsoft app configuration file.
linkedin_lib //Linkedin OAUTH library
-- config.php //Linkedin app configuration file.
images
db.php //Database connection
OauthLogin.php //Class
facebook_login.php //Facebook Login
google_login.php //Google Login
microsoft_login.php //Microsoft Login
linkedin_login.php //Linkedin Login
index.php
home.php
header.php
redirect.php
logout.php

How to Use
Just call anchor tag with particular service login file.
<a href='facebook_login.php'>Facebook Login</a>
<a href='google_login.php'>Google Login</a>
<a href='microsoft_login.php'>Microsoft Login</a>
<a href='linkedin_login.php'>Linkedin</a>

How it Works
Facebook & Google Authentication Flowchart


Installation
In this script just you have to modify three file.

db.php
Database configuration file, modify MySQL server details.
<?php
$mysql_hostname = "localhost";
$mysql_user = "username";
$mysql_password = "password";
$mysql_database = "databasename";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
$base_url='http://www.yourwebsite.com/';
?>

Application setup details click here.

Facebook Configuration facebook_lib/config.php
You have to create a application. Facebook will provide you app id and app secret id, just replace in the following code.
fbconfig.php
<?php
$facebook_appid='App ID';
$facebook_app_secret='App Secret';
$facebook_scope='email,user_birthday';
$facebook = new Facebook(array(
'appId' => $facebook_appid,
'secret' => $facebook_app_secret,
));
?>


Google Configuration google_lib/config.php
You can find this in google_lib folder, here you have to configure application OAuth keys, Consumer keys and redirection callback URL.
// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console Step 6 keys 
'oauth2_client_id' => 'Client ID',
'oauth2_client_secret' => 'Client Secret',
'oauth2_redirect_uri' => 'http://www.yoursite.com/google_login.php',

// OAuth1 Settings Step 3  keys.
'oauth_consumer_key' => 'OAuth Consumer Key',
'oauth_consumer_secret' => 'OAuth Consumer Secret',

Microsoft Configuration microsoft_lib/config.php
Click here to launch Microsoft live development dashboard and create an application. Microsoft will provide you Client_Id and Client_Secret.
fbconfig.php
<?php

//Microsoft Application Settings
$microsoft_client_id='Client ID';
$microsoft_client_secret='Client Secret';
$microsoft_scope='wl.basic wl.emails wl.birthday';
$microsoft_redirect_url=$base_url.'microsoft_login.php';

));
?>

Linkedin Configuration linkedin_lib/config.php
Click here to launch Linkedin developer network and application will provide your App_Key and App_Secret.
fbconfig.php
<?php

//Linkedin Application Settings
$linkedin_appKey='App Key';
$linkedin_appSecret='App Secret';
$linkedin_callbackUrl=$base_url.'linkedin_login.php';

));
?>

Installation Video
Comments
{ 49 comments }
José said...

Amazing!

wawasaki said...

Thank You content very good

Risingson Carlos said...

Thank you so much... In case I didn't said it before, your 9lessons site has been the BASIS of my understanding of Oauth :)

Chris Cagle said...

This is great. have you thought about adding Twitter support into this as well to make it a full suite for social media connection? If you do that, I would surly consider making the purchase.

Mziro said...

It's very useful app , thanks

Damien Norris said...

I hope it works better than the Google Facebook login script you sold earlier

Steve said...

Great job! But you should not work that way to merge or create new accounts. I mean, a lot of people have more than one e-mail address, if the e-mail on Facebook is not the same on the website he's trying to merge the accounts, your script will create a new account for him.

After getting the permission from Facebook, the script should always ask the user what he want to do: merge accounts or create a new account.

Pawan Mall said...

Amazing!

Thank You content very good

Suresh Gothandapani said...

Can the price be less :)

Anonymous said...

good

meghdoot dhameliya said...

Fantastic

Anonymous said...

thanks a lot, its very useful code for every budy

ssshani said...

cool :)

maxoya said...

hi
can you help me for yahoo oauth login ?!
give me a tutorial or any things ...

Anonymous said...

good one

Anonymous said...

Hello to all,

Nice script..i am unable to pay with my cc in Paypal..is anybody tell me how to pay that script

Naseeb said...

does the script require ssl certificate to be installed on the server?
thanks

Jaime Jesus Delgado Meraz said...

Would you mind telling what do you use for making those diagrams? I really like the way they look both clear and sketchy.

Thanks in advance.

Srinivas Tamada said...

@Jaime

Adobe illustrator

Srinivas Tamada said...

@Naseeb SSL not required

Ankit Chauhan said...

nice post

add twitter and yahoo too

Anonymous said...

Great job, but what about adding twitter oauthlogin ?

Alexander said...

Thanks for your great tutorial!

www.DNBweb.tk said...

Thanks.

Anonymous said...

really awesome

Pankaj said...

Hello sir,
nice post and like it

Vaibhav Patil said...

Awesome....

Anonymous said...

hey there
add twitter also
thanks

SYED ali said...

Your demonstration is good keep going on

SYED ali said...

Your demonstration is good keep going on

Power Cords said...

Amazing. I was looking for a script which I can use in my website for facebook and other social media websites login. Thanks for sharing as it really works and solved my problem.

Kiran said...

Awesome Dear! Very informative tutorial.

Srinivas Tamada said...

Twitter is not providing email id

mabol said...

Tank's Amazing your script

Abhijit Singh said...

great...I will try to add this to my website

Surya Adi Sapoetra said...

i love this tutorial, i try and sucess. thanks.

Anonymous said...

Just bought this, can't wait to implement it.

Ken Greenwood said...

Just bought and installed the script. Super easy.

One question - in testing, I added and then removed the app link from my Facebook account. Noticed that there is no logic to update the user table in the database. Would be very useful to have the removal action on the social accounts update the user record in the database to inactive or something... otherwise, any applications will still think the user is associated with their app.

Ken Greenwood said...

Looks like you need to implement the Deauthorize Callback functionality to remove the user from the database (under Advanced settings in FB at least)

Ken Greenwood said...

If figured it out.

load("id=?",array($fbid));
if ($found){
$rec->deauth= 1;
$rec->save();
}
}
//echo "ok";

function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);

// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);

if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}

// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}

return $data;
}

function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}


?>

Ken Greenwood said...

Last thing - I changed the deauth code to do an update to a new field on the users table called "active". I changed the OuthLogin.php to set that value to 1 when the authorization is occurring and set that value to 0 when the user deauthorizes the app.

That way, you don't lose the users info if you had transactions in your app associated with the user.

Anonymous said...

Why no Yahoo?

王东旭 said...

it helped me quite a lot!thank you.

王东旭 said...

it helps me quite a lot! thank you!

Евгений said...

Very good!

Anonymous said...

Whats about the server requirement?
I installed it on two virtual machines, it's runs fine on centos but not on ubuntu.
Any tips?

g@r3nK said...

How about twitter login...?

g@r3nK said...

How about twitter login.....?

TyYalniz said...

I cannot get the google to work.. I was able to create a client ID and secret for OAuth2 at https://code.google.com/apis/console/ >>> APIs >>> CREDENTIALS .. but when I copy and paste the Client ID and Secret to the google_lib >>> config.php it does not work. b/c I must be missing a step. The written instructions and video instructions seems not so similar and outdated :(

Post a Comment