Laravel 사교계 명사 : Microsoft Azure 구성

9153 단어 phplaraveloauthazure
Laravel 애플리케이션이 있고 사용자를 Azure와 연결하려고 합니다. 이 기사에서는 수행 방법을 설명합니다. 이 자습서에서는 Laravel Socialite package 을 사용합니다.

패키지 설치 및 구성:



1. 설치 :



먼저 다음 명령을 실행하여 공급자를 설치합니다.

composer require socialiteproviders/microsoft-azure


2. 서비스 제공자 :


config/app.php에서 \SocialiteProviders\Manager\ServiceProvider::classproviders[] 배열에 추가하고 이미 추가한 경우 Laravel\Socialite\SocialiteServiceProvider에서 providers[]를 제거합니다.

예를 들어 :

'providers' => [
    // a whole bunch of providers
    // remove 'Laravel\Socialite\SocialiteServiceProvider',
    \SocialiteProviders\Manager\ServiceProvider::class, // add
];


3. 이벤트 리스너


  • SocialiteProviders\Manager\SocialiteWasCalled 이벤트를 listen[]app/Providers/EventServiceProvider 배열에 추가합니다.
  • 방금 생성한 SocialiteProviders\Manager\SocialiteWasCalled[]에 리스너(즉, 공급자의 리스너)를 추가합니다.
  • 제공자에 대한 수신기를 배열에 추가합니다. 이 예에서 이것은 \SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle', 입니다.

  • protected $listen = [
        \SocialiteProviders\Manager\SocialiteWasCalled::class => [
            \SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle',
        ],
    ];
    


    4. config/services.php에 구성 추가




    'azure' => [    
      'client_id' => env('AZURE_CLIENT_ID'),
      'client_secret' => env('AZURE_CLIENT_SECRET'),
      'redirect' => env('AZURE_REDIRECT_URI'),
      'tenant' => env('AZURE_TENANT_ID'),
      'proxy' => env('PROXY')  // optionally
    ],
    


    5. 애플리케이션에서의 사용



    이제 사용할 수 있습니다(파사드 설치 프로그램이 있다고 가정).

    return Socialite::driver('azure')->redirect();
    


    앱과 Azure에서 로그아웃하려면:

    public function logout(Request $request) 
    {
         Auth::guard()->logout();
         $request->session()->flush();
         $azureLogoutUrl = Socialite::driver('azure')->getLogoutUrl(route('login'));
         return redirect($azureLogoutUrl);
    }
    


    laravel documentation에서 OAuth 공급자로 사용자를 인증하려면 두 개의 경로가 필요합니다. 하나는 사용자를 OAuth 공급자로 리디렉션하기 위한 경로이고 다른 하나는 인증 후 공급자로부터 콜백을 수신하기 위한 경로입니다.

    use Laravel\Socialite\Facades\Socialite;
    
    Route::get('/auth/redirect', function () {
        return Socialite::driver('azure')->redirect();
    });
    
    Route::get('/auth/callback', function () {
        $user = Socialite::driver('azure')->user();
    
        // $user->token
    });
    


    Azure 구성



    1. 앱 만들기


  • portal azure에서 "앱 등록"을 클릭합니다
  • .


  • 그런 다음 "새 등록"을 클릭합니다
  • .


  • 애플리케이션의 이름을 선택하십시오
  • .
  • 지원되는 계정 유형 선택
  • 리디렉션 URI에서 "웹"을 선택하고 laravel 애플리케이션의 콜백 경로로 URI를 채웁니다.

  • //for example
    http://localhost:8000/auth/callback
    


  • 등록을 클릭하십시오
  • .

    Laravel에서 앱 구성:



    .env 파일에 다음을 추가하십시오.

    AZURE_CLIENT_ID=
    AZURE_CLIENT_SECRET=
    AZURE_REDIRECT_URI=
    AZURE_TENANT_ID=
    PROXY=
    


    AZURE_CLIENT_ID는 Azure 애플리케이션의 "애플리케이션(클라이언트) ID"입니다.

    AZURE_REDIRECT_URI는 콜백 경로 URI입니다.

    AZURE_TENANT_ID는 Azure 애플리케이션의 "Directorty(테넌트) ID"입니다.

    AZURE_CLIENT_SECRET의 경우:
  • 인증서 또는 암호 추가를 클릭합니다
  • .
  • 새 클라이언트 암호를 클릭합니다.
  • 설명을 선택하세요
  • 추가 버튼 클릭
  • 값 키 복사



  • 이제 사용자는 자신의 Microsoft 계정을 사용하여 애플리케이션에 연결할 수 있습니다!

    좋은 웹페이지 즐겨찾기