2017-05-03 6 views
0

등록하기 전에 사용자가 학교를 선택하도록 Laravel 5.4 프로젝트를 만들고 있습니다. 내 문제는 Google 로그인이 응용 프로그램의 기본 로그인 방법이며 사용자 생성이 LoginController에서 처리된다는 것입니다. 나는 Google 로그인을 위해 Socialite 패키지를 사용하고 있습니다.사교계 등록 (Laravel 5.4)

사용자와 Google 콜백의 데이터를 등록 페이지로 전달하는 방법은 무엇입니까?

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

public function handleProviderCallback() 
{ 
    try 
    { 
     $user = Socialite::driver('google')->user(); 
    } 
    catch (Exception $e) 
    { 
     return redirect('auth/google'); 
    } 

    $authUser = $this->findOrCreateUser($user); 

    Auth::login($authUser, true); 

    return redirect('/home'); 
} 

public function findOrCreateUser($googleUser) 
{ 
    $authUser = User::where('google_id', $googleUser->id)->first(); 

    if ($authUser) { 
     return $authUser; 
    } 

    return User::create([ 
     'name' => $googleUser->name, 
     'email' => $googleUser->email, 
     'google_id' => $googleUser->id, 
     'avatar' => $googleUser->avatar 
    ]); 
} 

답변

0

당신은 flashed session를 사용할 수 있습니다

내 인 LoginController입니다. 이 시도 :

public function handleProviderCallback() 
{ 
    try 
    { 
     $user = Socialite::driver('google')->user(); 
    } 
    catch (Exception $e) 
    { 
     return redirect('auth/google'); 
    } 

    $authUser = User::where('google_id', $user->id)->first(); 

    if($authUser) //if user is found 
    { 
     Auth::login($authUser, true); 
     return redirect('/home'); 
    } 
    else //if user is not found, redirect to register page 
    { 
     return redirect('/register')->with('user', $user); 
    } 
} 

을하고 레지스터보기에서

<input type='text' name='email' value='{{session("user")->email}}'>