Manager
인증된 제출자socialiteproviders/manager
Laravel Socialite에 새 프로바이더를 추가하거나 기본 제공 프로바이더를 손쉽게 재정의하세요.
Socialite Providers Manager
소개
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로 접근할 수 있습니다.
