Joomla OAuth Client Integration with Laravel Passport Single Sign-On (SSO)
Integration of Laravel Passport Single Sign-on (Laravel Passport SSO) with Joomla using OAuth 2.0 Protocol. The miniOrange Joomla OAuth / OpenID Connect Single Sign-on (SSO) plugin makes it simple to set up Laravel Passport SSO into Joomla and enable secure login into Joomla. As a result, users can log in to Joomla and access the site by authenticating with their Laravel Passport OAuth Provider credentials.
Visit our Joomla OAuth Client Plugin webpage to learn more about the features and plans we offer for the Joomla OAuth Single Sign-on (OAuth & OpenID connect) plugin.
This detailed Handbook for the Joomla OAuth/OpenID Single Sign On plugin, gives an in depth explanation of the features of the plugin. You can refer to the handbook at anytime - it is always available to you, either via this link , or directly from the plugin for quicker access.
Setup Laravel as OAuth Provider With Joomla OAuth Client
1. Install Joomla OAuth Client plugin
Download the zip file for the miniOrange OAuth Client plugin for Joomla from the link here .
Login into your Joomla site’s administrator console.
From Menu, click on System, then under Install section click on Extension.
Upload the downloaded zip file to install the Joomla OAuth Client plugin.
After successful installation of plugin, click on Start Using miniOrange OAuth Client plugin button.
Under Configure OAuth tab. Select Laravel as an OAuth Provider.
Copy the Callback/Redirect URL from Configure OAuth tab of Joomla OAuth Client plugin.
Create a laravel project on your machine using command and set it up:
composer create-project --prefer-dist laravel/laravel blog
Install Laravel Passport
composer require Laravel/Passport
Go to config/app.php and add the below class under, provider section in the app.php file
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 this path app/Providers and open file AuthServiceProvider.php, add Passport routes to the service code is given below and save it:
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.
Now Set up a demo resource you can make an API route in routes/api.php file.
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? [http://localhost/auth/callback]:
New client created successfully.
Client ID: 1
Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
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 = $request->get("uid", 0);
$user = User::find($user_id);
Also, register the API route by adding the below line in routes/api.php file:
Now go to the Joomla OAuth Client plugin, under Configure OAuth tab, enter the all the details. Then click on Save Settings and then click on Test Configuration.
Now you can connect OAuth client with Laravel Passport (OAuth Provider) and the following endpoints are:
( Run php artisan serv in cmd to get your-laravel-site-url (Domain). )
User info endpoint:
3.Attributes Mapping and SSO with Laravel
Once you click on Test Configuration button, You will be able to see the attributes in the Test Configuration output as follows.
Now you have to do Attribute Mapping to perform SSO. Select the attribute name for Email and Username from dropdown. Then click on Save Attribute Mapping button.
Now you can use Login / SSO URL to perform SSO.
Now logout and go to your Joomla site's pages where you have added this link. You will see a login link where you placed that button. Click on this button to perform SSO.
Congratulations, you have successfully configured the miniOrange OAuth Client plugin with your Laravel OAuth Provider.
Click on the Upgrade Plans tab to check out our complete list of features and various licensing plans. OR you can click here to check features and licensing plans.
If you want to purchase any of the paid version of the plugin, you have to register/login with us in Account Setup tab. OR you can register/login Here .
In case, you are facing some issue or have any question in mind, you can reach out to us by sending us your query through the Support button in the plugin or by sending us a mail at email@example.com
You have successfully configured Joomla as OAuth Client for achieving Joomla Laravel Single Sign-On (SSO) with Joomla for user authentication.
In this guide, you have successfully configured Joomla Laravel Single Sign-On (SSO) by configuring Laravel as OAuth Provider and Joomla as OAuth Client using our Joomla OAuth Client plugin.This solution ensures that you are ready to roll out secure access to your Joomla site using Laravel login credentials within minutes.
Mail us on firstname.lastname@example.org for quick guidance(via email/meeting) on your requirement and our team will help you to select the best suitable solution/plan as per your requirement.
Need Help? We are right here!
Contact miniOrange Support
Thanks for your inquiry.
If you dont hear from us within 24 hours, please feel free to send a follow up email to email@example.com
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.