2017-01-25 14 views
0

私はLaravelプロジェクト(v5.3)を入手しましたが、カスタムフォームでログインし、Facebookに接続する必要があります。ApacheのLaravel 5.3のSessionGuard.phpでApacheのエラーが発生しました

だから、私は名士を使用して、それは私が必要なものです、しかし、私が最初にログインしたときに、コールバックは私が示しビュー/ URLにリダイレクトされません、代わりにLaravelは私に次の例外を示しています。

ErrorGuide SessionGuard.php 439: 引数1はIlluminate \ Auth \ SessionGuard :: login()に渡され、Illuminate \ Contracts \ Auth \ Authenticatableインタフェースが実装されていなければなりません、/ var/www/vendor/laravel /framework/src/Illuminate/Auth/AuthManager.php 294行で定義済み

これはtです私のカスタムコントローラでの彼のコード:だから

public function handleProviderCallback() 
{ 
    try 
    { 
     $socialUser = Socialite::driver('facebook')->user(); 

    }catch(\Exception $e) 
    { 
     return redirect('/'); 
    } 
     $user = User::where('facebook_id', $socialUser->getId())->first(); 

     if(!$user) 
      User::create([ 
       'facebook_id' => $socialUser->getId(), 
       'name' => $socialUser->getName(), 
       'email' => $socialUser->getEmail(), 
      ]); 

      auth()->login($user); 
      return redirect()->to('/home');    
} 

、私は自分のデータベースをチェックし、レコードがあります - [OK]を ...しかし、私はセッションではないんだけど - 間違った ...私は再びログインfacebookでログインあれば

dd($user) 

は、私が最初に ヌル値を得た:私が行う場合

...しかしすべてで... [OK]を(データベースのレコードを維持する)私は正常にログインすると、エラーが消えました時間 は、私は何も...空白で$ユーザーVARのショーを持っていない、次の回では...

は、だから私はこのラインだと思う:

auth()->login($user); 

そして私は

\Auth::login($user); 

を試みたが、それはあまりにも動作しません...

私のプロジェクトでは何が問題なのでしょうか? ! この例では、私は、私は私の英語のためにあなたに感謝し、申し訳ありません

:(上で何が起こっているのか理解していないLaravel 5.3とtutorialesでそれを見た :)

答えて

1

これを行います!

if(!$user) 
     $user = User::create([ 
      'facebook_id' => $socialUser->getId(), 
      'name' => $socialUser->getName(), 
      'email' => $socialUser->getEmail(), 
     ]); 

既存のコードに$user =を追加しました。 Model::createを実行すると、タイプModelのオブジェクトが返されるためです。

+1

はい!あなたが正しい!今すぐログインしてください!どうもありがとうございます! :) – SundayGirl

関連する問題