2017-01-02 21 views
1

私はSocialiteをユーザのログインに使用しています。私はremember_tokenを設定して、彼らがSocialiteを介してログインしたときにユーザを覚えておきたいと思います。Laravel Socialite Remember Me

今、私は、ユーザーを作成したり、ログに記録するには、次のサービスがあります。問題は、ユーザーが戻ってきたときにということである

class AuthController extends Controller { 

    public function logout() { 
     Auth::logout(); 
     return redirect('/'); 
    } 

    public function redirectToGoogle() { 
     return Socialite::driver('google')->redirect(); 
    } 

    public function handleGoogleCallback(SocialAccountService $service) { 
     $user = $service->createOrGetUser(Socialite::driver('google')->user()); 
     auth()->login($user); 
     return redirect('/'); 
    } 
} 

:次のコントローラと呼ばれる

class SocialAccountService { 

    public function createOrGetUser(ProviderUser $providerUser) { 

     $account = SocialAccount::whereProvider('google') 
      ->whereProviderUserId($providerUser->getId()) 
      ->first(); 

     if ($account) { 
      return $account->user; 
     } else { 
      $account = new SocialAccount([ 
       'provider_user_id' => $providerUser->getId(), 
       'provider' => 'google' 
      ]); 

      $user = User::whereEmail($providerUser->getEmail())->first(); 
      if (!$user) { 
       $user = User::create([ 
        'email' => $providerUser->getEmail(), 
        'name' => $providerUser->getName() 
       ]); 
      } 
      $account->user()->associate($user); 
      $account->save(); 
      return $user; 
     } 
    } 
} 

を彼らは記憶されておらず、自動的にログインしています。私はどのようにしてソーシャルサイトでこれを行うことができますか?設定されますlogin()の2番目の引数としてtrueを渡すdocumentationによると

+0

私は同じことを探していますが、今までの解決策を見つけましたか? – Alhazred

+0

いいえ私はこれを理解していません –

答えて

3

、トークンを覚えています。

// Login and "remember" the given user... Auth::login($user, true);

Authファサードとauth()ヘルパー関数は、同じオブジェクトにアクセスします。

関連する問題