2016-07-28 14 views
0

Laravel socialiteパッケージを使用して、Laravel 5/Angular 2のWebサイトにLinkedin & Googleサインインをセットアップしようとしています。Laravel socialiteが私を家にリダイレクトし続ける

名士プロバイダとエイリアスが正しく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/githubまたはhttp://localhost:8888/auth/linkedinに移動すると、ログなしでhttp://localhost:8888にリダイレクトされ続けます。どこで私は間違えましたか?社会的なリダイレクト用

+0

'redirectToProvider'関数に' dd(ここで.. ")'を入れようとしましたか? –

+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); 
    } 

これは明らかに回避策ですが、これは私がまだ発見された最良のソリューションです。

関連する問題