Результаты поиска :

×

Единый вход (SSO) OAuth для Laravel с использованием Laravel Passport в качестве поставщика OAuth.


Laravel OAuth Single Sign-On Плагин (SSO) позволяет включить единый вход OAuth для ваших приложений Laravel. Используя единый вход, вы можете использовать только один пароль для доступа к вашему приложению и сервисам Laravel. Наш плагин совместим со всеми поставщиками идентификации, поддерживающими OAuth. Здесь мы рассмотрим пошаговое руководство по настройке единого входа (SSO) между Laravel и Laravel Passport, используя Laravel Passport в качестве поставщика OAuth. Чтобы узнать больше о других функциях, которые мы предоставляем в плагине single-sign-on-sso для клиента Laravel OAuth, вы можете... нажмите здесь..

Установка клиента Laravel OAuth

  • Откройте окно командной строки и перейдите в свой рабочий каталог. Главная директория приложения Laravel и установите плагин Laravel OAuth, используя следующую команду.
  • composer require miniorange/oauth-laravel-free
  • После успешной установки пакета откройте ваше приложение Laravel в браузере и введите {laravel-application-domain}/mo_oauth_admin
  • Программа начнет настройку вашей базы данных, а затем перенаправит вас на страницу регистрации администратора.
  • Для настройки плагина зарегистрируйтесь или войдите в свою учетную запись miniOrange.
  • Настройки плагина Laravel Single Sign On SSO
  • После входа в систему вы увидите Настройки поставщика OAuth вариант, где вы получите URL перенаправления/обратного вызоваДержите его под рукой, так как он понадобится позже для настройки единого входа (SSO) в Laravel Passport.
  • Настройки клиента Laravel Single Sign On SSO OAuth

Шаги по настройке единого входа (SSO) в Laravel Passport. Вход в Laravel.

1. Настройте Laravel Passport в качестве поставщика OAuth.

  • Установите Laravel Passport, используя следующую команду.
  • composer require laravel/passport
  • Перейдите на конфиг/app.php и добавьте указанного ниже поставщика
  • Laravel\Passport\PassportServiceProvider::class
  • Run php ремесленник миграция команду
  • Run php artisan passport:install команду
  • Перейдите на app/Models/User.php класс модели, добавить HasApiTokens признак кода:
  • 
         
        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',
            ];
        }
        
        
        
  • Для версии Laravel 9.0, указанной ниже: Перейдите на app/Providers/AuthServiceProvider.php, добавлять use Laravel\Passport\Passport; , Passport::routes(); Ниже приведены пути к сервисному коду:
  •     
        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();
                //
            }
        }
        
  • Перейдите на config/auth.php изменить API водительский токен паспорта: Поскольку мы собираемся пользоваться библиотекой Passport.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                   'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                   'hash' => false,
                ],
            ],
        
  • Чтобы создать конечную точку UserInfo вручную, в app/Http/Controllers, создайте файл UserController.php:
  • 
        <?php
        namespace App\Http\Controllers;
        use App\Http\Controllers\Controller;
        use Illuminate\Http\Request;
        use App\Models\User;
        use Auth;
        class UserController extends Controller
        {
            public function get(Request $request)
            {
              $user_id = Auth::id();
              $user = User::find($user_id);
              return $user;
            }
        }
        
  • Кроме того, зарегистрируйте маршрут API, добавив следующую строку. маршруты/api.php файл:
  • 
        //For Laravel below 8 and migrated to the 8 version:
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
         

    OR

    
        //For Laravel 8 new users:
        use App\Http\Controllers\UserController;                                                                       
         Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Чтобы получить идентификатор клиента и Секрет клиента Выполните следующие команды: php artisan passport:client Вам будут заданы следующие вопросы:
  • 
         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]
         
        > Click Here to copy the Redirect URL.
          
        New client created successfully.
        
        Client ID: 1
        Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        


2. Настройка плагина Laravel OAuth для Laravel Passport

  • Перейдите на сайт miniOrange Laravel OAuth SSO плагин и нажмите Выберите Laravel Passport в качестве поставщика OAuth..
  • Laravel Single Sign On SSO выберите приложение
  • Введите идентификатор клиента и Секрет клиента из Laravel Passport Приложение.
  • Сохранение настроек в Laravel Single Sign On (SSO)
  • Для настройки воспользуйтесь таблицей ниже. Объем и Endpoints .
  • Объем: Оставьте поле «Область действия» пустым.
    Авторизовать конечную точку: http://your-laravel-site-url/oauth/authorize
    Конечная точка токена доступа: http://your-laravel-site-url/oauth/token
    Получение информации о пользователе через конечную точку: http://your-laravel-site-url/api/user/get
  • Вы можете отправить учетные данные клиента. заголовок or тело а также отправить состояние параметр также введите атрибут входа согласно вашему требованию.
  • Laravel Single Sign On SSO выберите приложение
  • Нажмите на сохранить настройки После этого нажмите на кнопку. тестовая конфигурация Нажмите эту кнопку, и вы получите список имен атрибутов и значений атрибутов, отправленных вашим OAuth-провайдером.
  • Сохранение настроек в Laravel Single Sign On (SSO)

3. Варианты единого входа (SSO)

  • Вы также можете использовать ссылку для входа через своего поставщика OAuth/OpenID.
  • Эта ссылка имеет следующий формат:
    {laravel-application-domain}/ssologin.php?option=oauthredirect

В этом руководстве вы успешно выполнили настройку. Единая авторизация (SSO) в Laravel Passport через Laravel в качестве клиента OAuthЭто решение гарантирует, что вы будете готовы обеспечить безопасный доступ к вашему сайту Laravel, используя Вход через Laravel Passport Учетные данные будут получены за считанные минуты.

Дополнительные ресурсы

Привет!

Нужна помощь? Мы здесь!

поддержка