2016-07-28 8 views
0

Ich versuche, ein Linkedin & Google-Anmeldung für meine Laravel 5/Angular 2 Website mit Laravel Socialite-Paket einzurichten.Laravel Socialite hält mich auf Heim weiter

Socialite Anbieter und Alias ​​werden in config/app.php Datei korrekt eingefügt

Hier ist der Code, den ich in config/services.php Datei eingefügt

'linkedin' => [ 
    'client_id' => '[hidden-linkedin-client-id]', 
    'client_secret' => '[hidden-linkedin-client-secret]', 
    'redirect' => 'http://localhost:8888/profile', 
], 

'google' => [ 
    'client_id' => '[hidden-google-client-id]', 
    'client_secret' => '[hidden-google-client-secret]', 
    'redirect' => 'http://localhost:8888/profile', 
], 

Hier sind die Strecken I erstellt ...

Route::get('/auth/{provider}', 'Auth\[email protected]'); 
Route::get('/auth/{provider}/callback', 'Auth\[email protected]'); 

... und die zugehörigen Funktionen in Http/Controllers/Auth/AuthController.php

public function redirectToProvider($provider) 
{ 
    Log::info('redirecting'); 
    return Socialite::driver($provider)->redirect(); 
} 

public function handleProviderCallback($provider) 
{ 
    $user = Socialite::driver($provider)->user(); 

    return $user->token; 
} 

Wenn ich dann zu http://localhost:8888/auth/github oder http://localhost:8888/auth/linkedin navigiere, leitet es mich weiter auf http://localhost:8888 ohne Protokoll. Was habe ich falsch gemacht?

+0

haben Sie versucht, etwas 'dd (" hier .. ")' in 'redirectToProvider' Funktion zu setzen? –

+0

@K.Toress danke für Hilfe. Ich habe es nur mit 'Log :: info ('redirecting') versucht und tatsächlich sehe ich kein Log. Was kann hier falsch sein? –

+0

Umm dann passiert die Umleitung bevor die Controller Funktion funktioniert, kann deine routes.php Datei posten wenn sie nicht viel groß ist? –

Antwort

0

Update-Konfigurationen für soziale Umleitung, Unten: -

'linkedin' => [ 
    'client_id' => '[hidden-linkedin-client-id]', 
    'client_secret' => '[hidden-linkedin-client-secret]', 
    'redirect' => 'http://localhost:8888/auth/linkdin/callback', 
], 

'google' => [ 
    'client_id' => '[hidden-google-client-id]', 
    'client_secret' => '[hidden-google-client-secret]', 
    'redirect' => 'http://localhost:8888/auth/google/callback', 
], 

und Redirect Funktion wie folgt sein sollte: -

public function redirectToProvider(){ 
    try{ 
    Log::info('redirecting'); 
    return Socialite::driver(\Request::segment(2))->redirect(); 
    }catch(\Exception $e){ 
    Log::info('Exception in redirect'); 
    } 
} 
0

Vielen Dank für Ihre Hilfe, aber keiner von Ihren Antworten tatsächlich gearbeitet da die redirectToProvider() Funktion nicht aufgerufen wird.

Also hielt ich meinen ursprünglichen Code und schließlich machte es durch Kommentare, diese Zeilen in der Middleware arbeitet Middleware/RedirectIfAuthenticated.php:

public function handle($request, Closure $next, $guard = null) 
    { 
     /* 
      if (Auth::guard($guard)->check()) { 
       return redirect('/'); 
      } 
     */ 
     return $next($request); 
    } 

Dies ist eindeutig eine Abhilfe, aber dies ist die beste Lösung, die ich noch nicht gefunden.

Verwandte Themen