2015-06-02 14 views
15

Jestem jednak nowy w firmie Laravel i wykonuję samouczek na temat http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/, aby zalogować się przez Facebooka do mojej aplikacji. Jednak prawie wszędzie znajduję samouczek korzystający z Github lub Twittera dla wtyczki Socialite podanej w Laravel.Używanie Laravel Socialite do zalogowania się na facebooku

Moim problemem jest to, że na następujących wszystko w tutorialu, jak kliknę na przycisk „Zaloguj się Facebook” rzuca się „Invalid argument wyjątek”, bez ekonomista kierowca został określony. ".

Kolejny stos przepełnienie pytanie wydawało się zawęzić rzeczy w dół. https://stackoverflow.com/questions/29673898/laravel-socialite-invalidargumentexception-in-socialitemanager-php-line-138-n

Stwierdzenie, że problem jest w config/services.php

teraz mam APP_ID i app_secret jednak link przekierowanie wydaje się być mylące, ponieważ i nie mogę go znaleźć również na Facebooku s to miejsce, w którym moja aplikacja powinna się logować do Facebooka, jednak nie wiem, co powinno być.

Czy ktoś ma jakiś pomysł na ten temat.

Odpowiedz

38

W swojej composer.json Dodaj- "laravel/socialite": "~2.0",

"require": { 
     "laravel/framework": "5.0.*", 
     "laravel/socialite": "~2.0", 

przebieg composer update

W config/services.php add:

//Socialite 
    'facebook' => [ 
     'client_id'  => '1234567890444', 
     'client_secret' => '1aa2af333336fffvvvffffvff', 
     'redirect'  => 'http://laravel.dev/login/callback/facebook', 
    ], 

Musisz utworzyć dwie trasy, moje są takie:

//Social Login 
Route::get('/login/{provider?}',[ 
    'uses' => '[email protected]', 
    'as' => 'auth.getSocialAuth' 
]); 


Route::get('/login/callback/{provider?}',[ 
    'uses' => '[email protected]', 
    'as' => 'auth.getSocialAuthCallback' 
]); 

Trzeba także stworzyć kontroler na trasach powyżej tak:

<?php namespace App\Http\Controllers; 

use Laravel\Socialite\Contracts\Factory as Socialite; 

class AuthController extends Controller 
{ 

     public function __construct(Socialite $socialite){ 
      $this->socialite = $socialite; 
     } 


     public function getSocialAuth($provider=null) 
     { 
      if(!config("services.$provider")) abort('404'); //just to handle providers that doesn't exist 

      return $this->socialite->with($provider)->redirect(); 
     } 


     public function getSocialAuthCallback($provider=null) 
     { 
      if($user = $this->socialite->with($provider)->user()){ 
      dd($user); 
      }else{ 
      return 'something went wrong'; 
      } 
     } 

} 

i wreszcie dodać adres URL witryny do Facebooka App tak:

enter image description here

+0

jak stworzyć facebook jako dostawcy, aby uzyskać CLIENT_ID i cilent_secret? – yudijohn

+1

@yudijohn, biorąc pod uwagę twoje pytanie, powinieneś stworzyć aplikację na Facebooku. W każdym razie, to coś, co powinieneś opublikować jako nowe pytanie. – whoan

+0

Czy możesz wyjaśnić, co robi druga trasa, jeśli masz już przekierowanie w 'config/services'? –

0

Tworzenie dostawcy pod swój plik config/services.php

'facebook' => [ 
    'client_id' => 'your-fb-client-id', 
    'client_secret' => 'your-fb-secret', 
    'redirect' => 'http://your-redirect.com/route', 
], 

teraz ca n utworzyć kontroler z poniższego kodu

//this function will redirect users to facebook login page 
public function facebook() 
{ 
    return \Socialize::with('facebook')->redirect(); 
} 

public function callback() 
{ 
    $user = \Socialize::with('facebook')->user(); 

    //now we have user details in the $user array 
    dd($user); 

} 

i jest to trasa

Route::get('facebook', '[email protected]'); 

Route::get('callback', '[email protected]'); 
+0

jak utworzyć Facebook jako dostawcę, aby uzyskać id_klienta i cilent_secret? – yudijohn

+0

@yudijohn musisz zrobić to tutaj https://developers.facebook.com/ – CrsCaballero

Powiązane problemy