2017-02-10 8 views
2

Я пытаюсь создать приложение для нескольких арендаторов, где я настроил базу данных, папку представлений, я знаю, что должен быть какой-то выход для настройки учетных данных входа в социальное приложение для светских. Я попробовал несколько вещей, чтобы установить его динамически.Учетные записи динамического социального приложения в пакете socialite в Laravel

ШАГ 1

Я создал класс с именем светской львицы в отдельной папке и когда социальный Войти называется Я реализует следующие в моем контроллере:

public function redirectSocialLogin() 
{ 
    $social = new SocialiteProvider(); 
    $fb = $social->makeFacebookDriver(); 
    return $fb->redirect(); 
} 

и в то время как обратный вызов я использовал следующее:

public function callbackSocialLogin($media) 
{ 
    $user = Socialite::driver($media)->user(); 
    $data['name'] = $user->getName(); 
    $data['email'] = $user->getEmail(); 
    dd($data); 
} 

В моем классе я имею следующие коды:

Он перенаправляется на социальную страницу, но при получении обратного вызова я получаю сообщение об ошибке. Он снова извлекает файл services.php для конфигурации и не получает никаких.

ШАГ 2

Я сделал ServiceProvider под названием SocialiteServiceProvider и расширили ядро ​​SocialiteServiceProvider и помещены следующие коды:

protected function createFacebookDriver() 
{ 
    $config['client_id'] = 'XXXXXXXXXXXXXXX'; 
    $config['client_secret'] = 'XXXXXXXXXXXXXXXXXXXX'; 
    $config['redirect'] = 'http://XXXXXXXXXXX/auth/facebook/callback'; 

    return $this->buildProvider(
     'Laravel\Socialite\Two\FacebookProvider', $config 
    ); 
} 

Но опять откидывает ошибку, которая говорит driver is not setup. Помогите мне в этом. Спасибо.

ответ

1

В вашем ШАГ 1, обновите обратный вызов, как указано ниже & попробуйте. $media есть фактически Request. Поэтому при инициализации Socialite::driver($media) вы фактически проезжаете Request, где вы должны пройти Facebook.

public function callbackSocialLogin(Request $request) { 
    $fbDriver = (new SocialiteProvider())->makeFacebookDriver(); 

    $user = $fbDriver->user(); 
    $data['name'] = $user->getName(); 
    $data['email'] = $user->getEmail(); 
    ... 
} 
+0

Да, я делаю так о '$ media', и ваше решение сработало. Глупые вещи, которые я забыл реализовать. Большое спасибо. Приветствия. –