2016-10-12 3 views
0

동적으로 공급자를 구성해야합니다.Dynamic Laravel Socialite Configurations

$config = [ 
    'client_id' = 'xxxxxxx', 
    'client_token' = 'xxxxxxx', 
    'redirect' = 'http://example.com/' 
]; 
return Socialite::with($provider)->setConfig($config)->redirect(); 

하지만 불행하게도 setConfig는 없습니다.

내가 제공, CLIENT_ID, client_secret을 설정하고

는 어떤 아이디어가 동적으로 재 지정 할 필요가

?

감사합니다.

답변

0

당신은 같은 사교계 buildProvider 방법을 사용할 수 있습니다 One/Twohttps://github.com/laravel/socialite/tree/2.0/src

+0

Thnx, 그것은 –

+0

) 작동 그리고 하나 더, 나는 변경하는 방법을 이해하지 않습니다 \ Laravel \ 사교계 \ 두 \ FacebookProvider : 내가 추가 인스 타 그램의 제공을 포함 한 경우, 예를 들어 수준의 서비스, ... 수 너 설명하니? –

+0

Instagram 공급자에 대해 다음 패키지를 사용할 수 있습니다. http://socialiteproviders.github.io/providers/instagram/ – Ryan

0

내가 사용에 폴더 중 하나에 다음을 제공 한 \Laravel\Socialite\Two\FacebookProvider::class가 (다른 경우) 서비스로 교체 될 것

$config = [ 
    'client_id' = 'xxxxxxx', 
    'client_token' = 'xxxxxxx', 
    'redirect'  = 'http://example.com/' 
]; 

return Socialite::buildProvider(\Laravel\Socialite\Two\FacebookProvider::class, $config); 

서비스 공급자가 비어있는 각 공급자에 대해 redirect을 자동으로 채 웁니다.

즉시 구성을 업데이트하도록 수정 될 수 있습니다. 그것은 당신이 뭘하려고하는지 정확하게 의존합니다.

<?php 

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

class SocialServiceProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     collect(config('services')) 
      ->only(config('social.providers')) 
      ->reject(function($config) { 
       return array_get($config, 'redirect', false); 
      }) 
      ->each(function($config, $key) { 
       $url = url("login/{$key}/callback", [], true); 

       config(["services.{$key}.redirect" => $url]); 
      }); 
    } 

    /** 
    * Register any application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
    } 
}