2015-06-02 15 views
15

Ich bin neu in Laravel aber ich folge dem Tutorial auf http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/, um einen Benutzer über Facebook in meine Anwendung einzuloggen. Aber fast überall finde ich ein Tutorial, das entweder Github oder Twitter für das Socialite-Plugin in Laravel verwendet.Mit Laravel Socialite auf Facebook einloggen

Mein Problem ist, dass alles, was im Tutorial auf folgenden, als ich auf dem „Login Book“ klicken, es ein „Invalid Argument Exception“ wirft mit No Socialite Treiber angegeben wurde. ".

Ein weiterer Stapel Überlauf Frage schien Dinge zu verengen. https://stackoverflow.com/questions/29673898/laravel-socialite-invalidargumentexception-in-socialitemanager-php-line-138-n

die Aussage, dass das Problem in der config/services.php ist

Nun, ich habe die app_id und app_secret jedoch die Umleitung Link als ich zu sein verwirrend scheint Ich kann es auch nicht auf Facebook finden s ist, wo meine App auf Facebook für den Login gehen sollte, jedoch unsicher, was es sein sollte.

Hat jemand eine Idee zu diesem Thema.

Antwort

38

In Ihrem composer.json Add- "laravel/socialite": "~2.0",

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

den Lauf composer update

In config/services.php add:

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

Sie benötigen zwei Routen zu erstellen, meine sind wie folgt:

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


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

Sie müssen auch Controller für die Routen wie so oben schaffen:

<?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'; 
      } 
     } 

} 

und fügen schließlich Site URL zu Ihrem Facebook-App wie folgt:

enter image description here

+0

wie Facebook als Anbieter erstellen, um das client_id und cilent_secret zu bekommen? – yudijohn

+1

@yudijohn, auf Ihre Frage sollten Sie eine Anwendung in Facebook erstellen. Wie auch immer, das solltest du als neue Frage posten. – whoan

+0

Können Sie erklären, was die zweite Route macht, wenn Sie bereits eine Weiterleitung in der 'config/services' haben? –

0

erstellen Anbieter unter Ihre config/services.php Datei

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

jetzt können Sie ca erstellen n einen Controller mit folgendem Code

//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); 

} 

und dies ist Ihre Route

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

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

Wie erstellt man Facebook als Provider, um die client_id und cilent_secret zu erhalten? – yudijohn

+0

@yudijohn Sie müssen es hier machen https://developers.facebook.com/ – CrsCaballero

Verwandte Themen