2016-07-28 45 views
0

我想安裝Linkedin &使用Laravel社交網站爲我的Laravel 5/Angular 2網站進行Google登錄。Laravel社交網站一直將我重定向到家

社會名流提供商和別名正確插入config/app.php文件

這是我在config/services.php文件插入代碼

'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', 
], 

這裏是我創造的路線......

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

...以及相關功能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; 
} 

然後,當我導航到http://localhost:8888/auth/githubhttp://localhost:8888/auth/linkedin時,它會一直將我重定向到http://localhost:8888而沒有任何日誌。我哪裏做錯了?

+0

你是否嘗試在'redirectToProvider'函數中放置'dd(「here ..」)'? –

+0

@ K.Toress謝謝你的幫助。剛試過'Log :: info('redirecting')',實際上我沒有看到任何日誌。這裏有什麼可能是錯的? –

+0

然後重定向發生在命中控制器功能之前,如果它沒有太大的話可以發佈你的routes.php文件嗎? –

回答

0

更新配置社會重定向,檢查下面: -

'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', 
], 

和重定向功能應該是這樣的: -

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

非常感謝你的幫助,但沒有答案的實際工作因爲沒有調用redirectToProvider()函數。

所以我一直在我最初的代碼,並最終使其工作在中間件Middleware/RedirectIfAuthenticated.php評論這些行:

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

這顯然是一種解決方法,但這是我還沒有找到最佳的解決方案。