Sökresultat :

×

OAuth Single Sign-On (SSO) För Laravel som använder Laravel Passport som OAuth-leverantör

OAuth Single Sign-On (SSO) För Laravel som använder Laravel Passport som OAuth-leverantör


Laravel OAuth enkel inloggning (SSO)-plugin ger möjlighet att aktivera OAuth Single Sign-On för dina laravel-applikationer. Genom att använda Single Sign-On kan du bara använda ett lösenord för att komma åt din laravel-applikation och dina tjänster. Vårt plugin är kompatibelt med alla OAuth-kompatibla identitetsleverantörer. Här kommer vi att gå igenom en steg-för-steg-guide för att konfigurera Single Sign-On (SSO) mellan Laravel och Laravel Passport med tanke på Laravel Passport som OAuth-leverantör. Om du vill veta mer om andra funktioner vi tillhandahåller i Laravel OAuth-klient-plugin för enkel inloggning på sso, kan du Klicka här.

Installation Laravel Oauth-klient

  • Öppna ett kommandotolksfönster och ändra arbetskatalogen till din Laravel-appens huvudkatalog och installera Laravel OAuth-plugin med kommandot nedan.
  • composer require miniorange/oauth-laravel-free
  • Efter en lyckad installation av paketet, gå till din Laravel-app i webbläsaren och skriv in {laravel-application-domain}/mo_oauth_admin
  • Paketet börjar ställa in din databas åt dig och omdirigerar dig sedan till administratörsregistreringssidan.
  • Registrera dig eller logga in med ditt miniOrange-konto för att konfigurera plugin-programmet.
  • Laravel Single Sign On SSO-plugininställningar
  • Efter inloggning kommer du att se OAuth-leverantörsinställningar alternativ, där du kommer att få Redirect/Callback URL. Ha det till hands eftersom det kommer att krävas senare för att konfigurera Laravel Passport Single Sign-On (SSO).
  • Laravel Single Sign On SSO OAuth-klientinställningar

Steg för att konfigurera Laravel Passport Single Sign-On (SSO) Logga in på Laravel

1. Konfigurera Laravel Passport som OAuth-leverantör

  • Installera laravel-pass med kommandot nedan
  • composer require laravel/passport
  • Gå till config/app.php och lägg till nedanstående leverantör
  • Laravel\Passport\PassportServiceProvider::class
  • Körning php artisan migrera kommando
  • Körning php artisan passport:installera kommando
  • Gå till app/Modeller/User.php modellklass, tillägg HasApiTokens egenskap hos koden:
  • 
         
        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',
            ];
        }
        
        
        
  • För Laravel version 9.0 nedan: Gå till app/Providers/AuthServiceProvider.php, Lägg till använd Laravel\Passport\Pass; , Passport::routes(); rutter till servicekoden anges nedan:
  •     
        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();
                //
            }
        }
        
  • Gå till config/auth.php ändra api förartecken till pass eftersom vi ska använda passbiblioteket.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                   'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                   'hash' => false,
                ],
            ],
        
  • För att skapa en UserInfo-slutpunkt manuellt, i app/Http/Controllers, skapa en fil 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;
            }
        }
        
  • Registrera också API-rutten genom att lägga till raden nedan routes/api.php fil:
  • 
        //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');
        
  • För att få kund-ID och Klienthemlighet kör följande kommandon: php hantverkspass:klient Den kommer att ställa dig följande frågor:
  • 
         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. Konfigurera Laravel OAuth-klientplugin för Laravel Passport

  • Gå till miniOrange Laravel OAuth SSO plugin och klicka på Välj Laravel Passport som OAuth-leverantör.
  • Laravel Single Sign On SSO välj app
  • Ange kund-ID och Klienthemlighet från Laravel Passport Applikation.
  • Laravel Single Sign On SSO-sparinställningar
  • Se tabellen nedan för att konfigurera Omfattning och endpoints .
  • Omfattning: Lämna omfångsfältet tomt
    Auktorisera slutpunkt: http://your-laravel-site-url/oauth/authorize
    Åtkomsttokens slutpunkt: http://your-laravel-site-url/oauth/token
    Hämta UserInfo Endpoint: http://your-laravel-site-url/api/user/get
  • Du kan skicka in klientuppgifterna rubrik or kropp och även skicka tillstånd parameter i enlighet därmed också in inloggningsattribut enligt ditt krav.
  • Laravel Single Sign On SSO välj app
  • Klicka på spara inställningar knapp. Efter det, klicka på testkonfiguration knapp. du får listan över attributnamn och attributvärden som skickas av din OAuth-leverantör
  • Laravel Single Sign On SSO-sparinställningar

3. SSO-alternativ

  • Du kan också använda en länk för att logga in via din OAuth/OpenID-leverantör.
  • Denna länk är i formatet:
    {laravel-application-domain}/ssologin.php?option=oauthredirect

I den här guiden har du konfigurerat Laravel Passport Single Sign-On (SSO) med hjälp av Laravel som OAuth-klient. Denna lösning säkerställer att du är redo att rulla ut säker åtkomst till din Laravel-webbplats med hjälp av Laravel Passport-inloggning inloggningsuppgifter inom några minuter.

Ytterligare resurser

Hej där!

Behövs hjälp? Vi är här!

stödja
Kontakta miniOrange Support
framgång

Tack för din förfrågan.

Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com