← 패키지 목록

Manager

인증된 제출자

socialiteproviders/manager

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

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

Socialite Providers Manager

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

개요

Laravel Socialite를 확장하여 새로운 소셜 로그인 프로바이더를 쉽게 추가하거나, 기존 프로바이더를 재정의할 수 있게 해주는 패키지입니다.

주요 특징

  • 등록한 모든 프로바이더에 일관된 방식으로 접근할 수 있습니다.
  • Socialite가 실제로 호출될 때까지 프로바이더 인스턴스 생성을 지연(lazy instantiation)합니다.
  • 기존 내장 프로바이더를 재정의할 수 있습니다.
  • 커스텀 프로바이더를 직접 만들 수 있습니다.
  • stateless() 옵션을 true 또는 false로 설정할 수 있습니다.
  • 설정값을 런타임에 동적으로 변경할 수 있습니다.
  • config/services.php 배열을 따로 수정하지 않아도 .env 파일에서 환경변수를 직접 읽어옵니다.

사용 가능한 프로바이더

  • SocialiteProviders 공식 목록에서 카카오, 네이버, 라인 등 다양한 프로바이더를 확인할 수 있습니다.
  • 기존 프로바이더를 참고하여 직접 만들거나 수정할 수도 있습니다.

참고 문서

핸들러 만들기

아래는 핸들러 클래스의 예시입니다. 이 클래스의 전체 이름(FQCN)을 EventServiceProvider$listen 배열에 등록해야 합니다.

  • Laravel 이벤트 문서도 함께 참고하세요.
  • providername 자리에는 실제 프로바이더 이름(예: kakao, naver, 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)를 재정의하려면, 동일한 이름으로 새 프로바이더를 만들기만 하면 됩니다. 이름이 같으면 내장 프로바이더 대신 커스텀 프로바이더가 사용됩니다.

설정값 동적으로 전달하기

런타임에 클라이언트 ID, 시크릿, 리다이렉트 URL 등을 직접 지정해야 하는 경우 Config 객체를 생성하여 전달할 수 있습니다.

$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();

NOTE

setConfig()는 반드시 redirect()user() 등 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