Laravel Passport SSO login with Drupal OAuth 2.0/OpenID connect module gives the ability to enable OAuth 2.0/OIDC Single Sign On to Drupal Site. The OAuth Client module is compatible with all OAuth 2.0/OpenID providers. Here we go through a guide to configure the SSO login between Drupal and Laravel Passport. At the end of this guide, users of Laravel Passport SSO should be able to log in using the Admin Credentials and register to the Drupal site, you can download module click here
If you have any doubts or queries you can contact us at drupalsupport@xecurify.com. We will help you to configure the module.
composer create-project --prefer-dist laravel/laravel blog
composer require laravel/passport
Laravel\Passport\PassportServiceProvider::class,
namespace App;
use Laravel\Passport\HasApiTokens;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
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 = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
namespace App\Providers;
use Laravel\Passport\Passport;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
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()
{
$this->registerPolicies();
Passport::routes();
//
}
}
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
],
Which user ID should the client be assigned to?:
> 1
What should we name the client?:
> Demo OAuth2 Client Account
Where should we redirect the request after authorization?
[http://localhost/auth/callback]:
> http://localhost/oauth2_client/callback.php
New client created successfully.
Client ID: 1
Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\User;
class UserController extends Controller
{
public function get(Request $request)
{
$user_id = $request->get("uid", 0);
$user = User::find($user_id);
return $user;
}
}
Route::middleware('auth:api')->get('/user/get', 'UserController@get');
Authorization endpoint: | http://your-laravel-site-url/oauth/authorize |
Token endpoint: | http://your-laravel-site-url/oauth/token |
User info endpoint: | http://your-laravel-site-url/api/user/get |
Please note: This step is mandatory for your login to work. Click on the Save button on the bottom of the page to save your attribute configurations.
Congratulations, you have successfully configured the miniOrange Drupal OAuth Client module.
Contact us on drupalsupport@xecurify.com for quick guidance (via email/meeting) or call us at +1 978 658 9387.
On your requirement and our team will help you to select the best suitable solution/plan as per your requirement.