Gone are the days when a user needs to fill out the registration form, receive an email with an activation link, and then activate their account. Popular social sites like Google, LinkedIn, and Twitter provide APIs through which users can log in to your website. This saves time for both users and developers and adds a better user experience. In this article, we study adding Twitter OAuth login on a website using PHP.
You may also want to read our articles:
Get Twitter Credentials
Whenever you want to integrate social login APIs, you need to get your API credentials. On Twitter, you first need to create your application and then you will get your keys.
- Go to the Twitter developer account and create a new application.
- Fill out the required fields such as the application name and description.
- Put your website domain in the Website field.
- Set the callback URL as
YOUR_DOMAIN_URL/index.php
. - Once you have registered, copy the application credentials (Consumer Key and Secret) which require in the next steps.
As we set the callback URL to index.php
file, we will handle the redirect code in this file. You can set the different URL as per your requirements.
Configure HybridAuth Library
In order to integrate social login, I always recommend using HybridAuth which is an open-source social sign-on PHP library. Using this library, one can easily add social login to their application. You don’t need to scratch your head against the API documentation. Just grab your credentials and HybridAuth does the rest for you.
Create a composer.json
file and add the below code in it.
{
"require" : {
"hybridauth/hybridauth" : "~3.0"
}
}
Next, run the command below which will install the HybridAuth library in your application.
composer install
Create a config.php
file and write the code below in it. We are also adding Twitter credentials in the configuration file.
<?php
require_once 'vendor/autoload.php';
$config = [
'callback' => 'YOUR_DOMAIN_URL/index.php',
'keys' => ['key' => 'TWITTER_CONSUMER_API_KEY', 'secret' => 'TWITTER_CONSUMER_API_SECRET_KEY'],
'authorize' => true
];
$adapter = new Hybridauth\Provider\Twitter( $config );
Twitter OAuth Login on Website
We are done with all basic configurations. Now, we can go ahead and add login with Twitter functionality on the website. Create a file called index.php
and add the below code to it.
<?php
require_once 'config.php';
try {
$adapter->authenticate();
$userProfile = $adapter->getUserProfile();
print_r($userProfile);
echo '<a href="logout.php">Logout</a>';
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Run the URL YOUR_DOMAIN_URL/index.php
in the browser, the code in the file first checks whether the user is authenticated with ‘Twitter’ or not. If not, it redirects to the login page of Twitter. The user has to complete their authentication. After authentication, the user comes back to the index.php
. After this, we can get the user’s information by using the method getUserProfile()
.
Finally, in the logout.php
we should disconnect the adapter(Twitter) which automatically logs the user out of the application.
<?php
require_once 'config.php';
try {
if ($adapter->isConnected()) {
$adapter->disconnect();
echo 'Logged out the user';
echo '<p><a href="index.php">Login</a></p>';
}
}
catch( Exception $e ){
echo $e->getMessage() ;
}
That’s it! I hope you got to know about adding a Twitter OAuth login on the website with PHP. Please share your thoughts or suggestions in the comment section below.
If you liked this article, then please subscribe to our YouTube Channel for video tutorials.