검색 결과 :

×

Laravel Passport를 OAuth 공급자로 사용하는 Laravel용 OAuth 싱글 사인온(SSO)


Laravel OAuth 싱글 사인온 (SSO) 플러그인은 Laravel 애플리케이션에 OAuth Single Sign-On을 활성화할 수 있는 기능을 제공합니다. Single Sign-On을 사용하면 Laravel 애플리케이션과 서비스에 액세스할 때 하나의 비밀번호만 사용할 수 있습니다. 저희 플러그인은 모든 OAuth 호환 ID 공급자와 호환됩니다. 여기에서는 Laravel Passport를 OAuth 공급자로 고려하여 Laravel과 Laravel Passport 간에 Single Sign-On(SSO)을 구성하는 단계별 가이드를 살펴보겠습니다. Laravel OAuth 클라이언트 Single Sign-On-SSO 플러그인에서 제공하는 다른 기능에 대해 자세히 알아보려면 다음을 참조하세요. 여기를 클릭하세요..

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. 나중에 Laravel Passport Single Sign-On(SSO)을 구성하는 데 필요하므로 편리하게 보관하세요.
  • Laravel 싱글 사인온 SSO OAuth 클라이언트 설정

Laravel Passport Single Sign-On(SSO) 구성 단계 Laravel에 로그인

1. Laravel Passport를 OAuth 공급자로 구성

  • 아래 명령을 사용하여 laravel Passport를 설치하십시오.
  • composer require laravel/passport
  • We Buy Orders 신청서를 클릭하세요. 설정/앱.php 아래 공급자를 추가하십시오.
  • Laravel\Passport\PassportServiceProvider::class
  • 달리기 PHP 장인이 마이 그 레이션 명령
  • 달리기 PHP 장인 여권:설치 명령
  • We Buy Orders 신청서를 클릭하세요. 앱/모델/User.php 모델 클래스, 추가 HasApiToken 코드의 특징:
  • 
         
        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의 경우: We Buy Orders 신청서를 클릭하세요. 앱/공급자/AuthServiceProvider.php추가 Laravel\Passport\Passport를 사용하십시오. , 여권::경로(); 서비스 코드에 대한 경로는 다음과 같습니다.
  •     
        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();
                //
            }
        }
        
  • We Buy Orders 신청서를 클릭하세요. 구성/auth.php 변경 API를 드라이버 토큰 여권 Passport 라이브러리를 사용할 예정이거든요.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                   'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                   'hash' => false,
                ],
            ],
        
  • UserInfo 엔드포인트를 수동으로 생성하려면 앱/Http/컨트롤러, 파일을 생성하세요 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');
        
  • 얻으려면 고객 ID 고객 비밀 다음 명령을 실행하십시오. PHP 장인 여권:클라이언트 다음과 같은 질문을 할 것입니다:
  • 
         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 Passport를 위한 Laravel OAuth 클라이언트 플러그인 구성

  • 로 이동 miniOrange Laravel OAuth SSO 플러그인을 클릭하고 OAuth 공급자로 Laravel Passport를 선택하세요.
  • Laravel Single Sign On SSO 앱 선택
  • 입력 고객 ID 고객 비밀 Laravel Passport에서 .
  • Laravel Single Sign On SSO 저장 설정
  • 구성 방법은 아래 표를 참조하세요. 범위 종점 .
  • 범위: 범위 필드를 비워 두세요.
    엔드포인트 승인: http://your-laravel-site-url/oauth/authorize
    액세스 토큰 엔드포인트: http://your-laravel-site-url/oauth/token
    UserInfo 끝점 가져오기: 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

이 가이드에서는 성공적으로 구성했습니다. Laravel Passport 싱글 사인온(SSO) 사용 OAuth 클라이언트로서의 Laravel. 이 솔루션은 다음을 사용하여 Laravel 사이트에 대한 보안 액세스를 출시할 준비가 되었는지 확인합니다. 라라벨 패스포트 로그인 몇 분 안에 자격 증명을 얻을 수 있습니다.

추가 자료

안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT