본문 바로가기
← 패키지 목록

Manager

인증된 제출자

socialiteproviders/manager

제출자 이우진
최신 v4.10.0라이센스 MIT배포 2026년 10월 4일
인증

Laravel Socialite에 새 프로바이더를 추가하거나 기본 제공 프로바이더를 손쉽게 재정의하세요.

Socialite Providers Manager

Test codecov Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

소개

Laravel Socialite에 새 프로바이더를 손쉽게 추가하거나 기존 프로바이더를 재정의할 수 있는 패키지입니다.

장점

  • 매니저로 로드한 모든 프로바이더를 사용할 수 있습니다.
  • Socialite를 호출할 때까지 인스턴스 생성을 미룹니다.
  • 기존 프로바이더를 재정의할 수 있습니다.
  • 새 프로바이더를 만들 수 있습니다.
  • stateless()를 true 또는 false로 설정할 수 있습니다.
  • 설정을 동적으로 재정의할 수 있습니다.
  • services 배열을 별도로 설정하지 않아도 .env 파일에서 환경 변수를 직접 가져옵니다.

사용 가능한 프로바이더

  • SocialiteProviders 목록을 확인하세요.
  • 직접 만들거나 다른 사람이 만든 프로바이더를 수정할 수도 있습니다.

참고 자료

핸들러 만들기

다음은 핸들러 예제입니다. 이 클래스의 전체 이름을 EventServiceProvider의 listen[]에 추가해야 합니다.

  • Laravel 이벤트 문서도 참고하세요.
  • providername은 meetup과 같은 프로바이더 이름입니다.
  • 네임스페이스와 클래스 이름은 프로젝트에 맞게 변경하세요.
namespace Your\Name\Space; use SocialiteProviders\Manager\SocialiteWasCalled; class ProviderNameExtendSocialite { public function handle(SocialiteWasCalled $socialiteWasCalled) { $socialiteWasCalled->extendSocialite('providername', \Your\Name\Space\Provider::class); } }

프로바이더 만들기

기본 제공 프로바이더 재정의

기본 제공 laravel/socialite 프로바이더와 정확히 같은 이름(예: 'facebook')으로 새 프로바이더를 만들면 기존 프로바이더를 재정의할 수 있습니다.

설정을 동적으로 전달하기

다음과 같이 설정을 동적으로 전달할 수 있습니다.

$clientId = "secret"; $clientSecret = "secret"; $redirectUrl = "http://yourdomain.com/api/redirect"; $additionalProviderConfig = ['site' => 'meta.stackoverflow.com']; $config = new \SocialiteProviders\Manager\Config($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig); return Socialite::with('provider-name')->setConfig($config)->redirect();

다른 Socialite 메서드를 실행하기 전에 설정을 전달해야 합니다.

OAuth1 서버 클래스 만들기

다른 OAuth1 프로바이더를 참고해 구현하세요.

액세스 토큰 응답 본문 가져오기

Laravel Socialite는 기본적으로 access_token에만 접근할 수 있게 합니다. 이 값은 \Laravel\Socialite\User->token 공개 속성으로 가져옵니다. 하지만 refresh_token 등이 포함된 전체 응답 본문이 필요한 경우도 있습니다.

전체 응답 본문을 사용하려면 OAuth2 프로바이더 클래스가 \SocialiteProviders\Manager\OAuth2\AbstractProvider를 상속해야 합니다. OAuth1 프로바이더는 \SocialiteProviders\Manager\OAuth1\AbstractProvider와 \SocialiteProviders\Manager\OAuth1\Server를 사용해야 합니다.

사용자 객체에서 $user->accessTokenResponseBody로 접근할 수 있습니다.