2017-01-02 3 views
1

Я использую Socialite для входа пользователя в систему, и я хотел бы установить remember_token, чтобы запомнить пользователя, когда они входили в систему через Socialite.Laravel Socialite Запомнить меня

Сейчас у меня есть следующие услуги для создания или входа пользователя в систему:

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

Она вызывается следующим контроллером:

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('/'); 
    } 
} 

Проблема в том, что, когда пользователь возвращается они не запоминаются и автоматически регистрируются. Как я могу сделать это с помощью Socialite?

+0

Я ищу то же самое, нашли ли вы решение до сих пор? – Alhazred

+0

Нет, я не понял этого –

ответ

3

Согласно documentation, проходя true в качестве второго аргумента login() задаст помните маркер.

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

Auth фасад и auth() помощник доступа Функция тот же объект.