Drupal Laravel SSO integration will allow you to configure Single Sign-On ( SSO ) login between your Drupal site and Laravel using OAuth/OpenID protocol. Drupal OAuth 2.0/OpenID connect module gives the ability to enable login using OAuth 2.0/OIDC Single Sign-On to Drupal Site. We provide the Drupal OAuth/OpenID Client module for Drupal 7, Drupal 8, and Drupal 9.
Here we will go through a guide to configure the SSO login between Drupal and Laravel. By following these steps, users of Laravel will be able to log into the Drupal site using their Laravel credentials.
If you have any queries or if you need any sort of assistance in configuring the module, you can contact us at firstname.lastname@example.org. If you want, we can also schedule an online meeting to help you configure the Drupal OAuth & OpenID Connect Login - OAuth2 Client SSO Login module.
Features and Pricing
Know more about Drupal OAuth/OpenID Single Sign On from here.
You can download the Drupal OAuth/OpenID Single Sign On module from here.
This detailed Handbook for the Drupal OAuth/OpenID Single Sign On module, gives an in depth explanation of the features of the module. You can refer to the handbook at anytime - it is always available to you, either via This link, or directly from the module for quicker access.
1. Install Drupal OAuth Client module
1.1. Using Composer:
Composer require drupal/miniorange_oauth_client
Composer require 'drupal/miniorange_oauth_client'
Navigate to Extend menu on your Drupal admin console and search for miniOrange OAuth Client Configuration using the search box.
Enable the module by checking the checkbox and click on the Install button.
Navigate to the Configure OAuth tab and search for your Provider/Application using the search box. If you can't find a desired application/provider, select Custom OAuth Provider.
Copy the Callback/Redirect URL and keep it handy.
2. Configure SSO Application in Laravel
Create a laravel project on your local machine using command and set it up:
composer create-project --prefer-dist laravel/laravel blog
Change the directory to blog using cd blog command. Install laravel passport
composer require laravel/passport
Go to config/app.php and add below provider
Run php artisan migrate command
Run php artisan passport:install command
Go to app/User.php model class, add HasApiTokens trait to the code:
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
use HasApiTokens, Notifiable;
* The attributes that are mass assignable.
* @var array
protected $fillable = [
'name', 'email', 'password',
* The attributes that should be hidden for arrays.
* @var array
protected $hidden = [
* The attributes that should be cast to native types.
* @var array
protected $casts = [
'email_verified_at' => 'datetime',
Go to app/Providers/AuthServiceProvider.php, add use Laravel\Passport\Passport; , Passport::routes(); routes to the service code is given below:
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
* The policy mappings for the application.
* @var array
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
* Register any authentication / authorization services.
* @return void
public function boot()
Go to config/auth.php change the api driver token to passport as we are going to use Passport library.
To create a UserInfo endpoint manually, in the app/Http/Controllers, create a file UserController.php:
class UserController extends Controller
public function get(Request $request)
$user_id = Auth::id();
$user = User::find($user_id);
Also, register the API route by adding the below line in routes/api.php file:
//For Laravel below 8 and migrated to the 8 version:
//For Laravel 8 new users:
3. Integrating Drupal with Laravel
To get Client ID and Client Secret run following commands:
php artisan passport:client It will ask you the following questions:
Which user ID should the client be assigned to?:
What should we name the client?:
> Demo OAuth2 Client Account
Where should we redirect the request after authorization?
New client created successfully.
Client ID: 1Client secret: zMm***********************************01
In Drupal’s Configure OAuth tab and paste the copied Client ID and Client Secret in the Client ID and Client Secret text-field.
You have successfully completed your Laravel App OAuth Server side configurations.
Laravel Scope and Endpoints
Client ID :
from the above step
Client Secret :
from the above step
Access Token Endpoint:
Get User Info Endpoint:
4. Test Configuration of Drupal with Laravel
After successfully saving the configurations, please click on the Test Configuration button to test the connection between Drupal and Laravel.
This Test Configuration window will provide you with a list of the attributes that are coming from the Laravel.
Select the Email Attribute from the dropdown menu in which the user's email ID is obtained and click on the Done button.
Now, in the Attribute & Role Mapping tab, you can also choose the Username Attribute from the dropdown and click on the Save Configuration button.
Please note: Mapping the Email Attribute is mandatory for your login to work.
Now log out and go to your Drupal site’s login page. You will automatically find a Login with Laravel link there. If you want to add the SSO link to other pages as well, please follow the steps given in the image below :
24*7 Active Support
If you face any issues or if you have any questions, please feel free to reach out to us at email@example.com. In case you want some additional features to be included in the module, please get in touch with us, and we can get that custom-made for you. Also, If you want, we can also schedule an online meeting to help you configure the Drupal OAuth/OpenID Single Sign On module.
If you dont hear from us within 24 hours, please feel free to send a follow up email to firstname.lastname@example.org
This privacy statement applies to miniorange websites describing how we handle the personal
When you visit any website, it may store or retrieve the information on your browser, mostly in the
form of the cookies. This information might be about you, your preferences or your device and is
mostly used to make the site work as you expect it to. The information does not directly identify
you, but it can give you a more personalized web experience.
Click on the category headings to check how we handle the cookies.
Strictly Necessary Cookies
Necessary cookies help make a website fully usable by enabling the basic functions like site
navigation, logging in, filling forms, etc. The cookies used for the functionality do not store any
personal identifiable information. However, some parts of the website will not work properly without
These cookies only collect aggregated information about the traffic of the website including -
visitors, sources, page clicks and views, etc. This allows us to know more about our most and least
popular pages along with users' interaction on the actionable elements and hence letting us improve
the performance of our website as well as our services.