Login with Instagram


Instagram Login API allows the user to sign into the website using their Instagram account without sign up on that website. Here we can give an option to the user to register/ login to our system with their Instagram.

The process is like this:

If the user click on "Login with Instagram" button then it will ask Instagram user name and password. If the user is using the system first time then it will fill up the registration form and display first name, last name, email fields. There will be no password field as the user is register / connect through Instagram. Once the user click on submit, our system will save the data in the server with the reference number or User id sent by Instagram. Next time when the user come and click on "Login with Instagram" our system will check the reference number/ user id in our database, if it matches then it will sent the user directly to My Account page.

Please note in this process we will not save password in the database. You can follow the same steps for login with other social media login/ registration system.

You can download the attached file and get the basic html form and other files used in this project.

You need to generate Instagram App Client Id and Client Secret.

Creating a Instagram App

Craete Login/ Registration system Step1:

Save the App Client ID and Client Secret and Redirect URL.

<?php
define('INSTAGRAM_CLIENT_ID','**************');
define('INSTAGRAM_CLIENT_SECRET','**************');
define('INSTAGRAM_REDIRECT_URI','**************');
?>


Now Add the following code to "Sign in with Instagram" button.

<a href="<?php echo $login_url ?>">Login with Instagram</a>

If the user enters the correct info then Instagram page will redirect back to or login page with required information's.

if(isset($_GET['code'])) {
try {
	$instagram_ob = new InstagramApi();
	// Get the access token 
	$access_token = $instagram_ob->GetAccessToken(INSTAGRAM_CLIENT_ID, INSTAGRAM_REDIRECT_URI, INSTAGRAM_CLIENT_SECRET, $_GET['code']);
	// Get user information
	$user_info = $instagram_ob->GetUserProfileInfo($access_token);
	//print_r($user_info);
	$passcode	= $user_info['id'];
	$fullname 	= $user_info['full_name'];
	$username  	= $user_info['username'];
	$profilepic	= $user_info['profile_picture'];
	$loginwith	= "Instagram";
	/*Check if the user connected before */
	$sql = db_query("select * from register_instagram where passcode='".$passcode."'");
	$numrow = mysqli_num_rows($sql);
	if($numrow > 0){
		$_SESSION['passcode'] 	= $passcode;
		header('Location:myaccount.php');
		exit();
	}
	$btnstatus  = "";
}
catch(Exception $e) {
	echo $e->getMessage();
	exit;
}
}

If the user registered before then our system will redirect the user to my account page otherwise it will ask the user to register for the first time.

/*Check if the user connected before */
$sql = db_query("select * from register_instagram where passcode='".$passcode."'");
$numrow = mysqli_num_rows($sql);
if($numrow > 0){
	$_SESSION['email'] 		= $email;
	$_SESSION['passcode'] 	= $passcode;
	
	header('Location:myaccount.php');
	exit();
}

The MySql table used in this project
CREATE TABLE IF NOT EXISTS `register_instagram` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(50) DEFAULT NULL,
  `lastname` varchar(50) DEFAULT NULL,
  `email` varchar(60) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `passcode` varchar(100) DEFAULT NULL,
  `profilepic` varchar(250) DEFAULT NULL,
  `loginwith` varchar(10) DEFAULT NULL,
  `status` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
 

Other Login/ Registration Systems

Login/ Register With Facebook
Login/ Register With Twitter
Login/ Register With Linked In
Login/ Register With Gmail
Login/ Register With Yahoo!
Login/ Register With Pinterest
Login/ Register With Hotmail
Login/ Register With Email

Top