2017-11-19 7 views
1

현재 사용자가 Facebook에서 로그인 할 수 있도록 내 웹 사이트에 Socialite를 추가하고 있습니다.Laravel Socialite는 맞춤 데이터를 전달하고 검색하나요?

public function redirectToProviderFacebook() { 
    return Socialite::driver('facebook')->redirect(); 
} 

public function handleProviderCallbackFacebook() { 
    $userSocial = Socialite::driver('facebook')->user(); 
    $email = $userSocial->getEmail(); 

    if (User::where('email', $email)->count() > 0) { 
     // log them in 
     Auth::login(User::where('email', $email)->first()); 
     return redirect()->route('home')->with('info', "You are now signed in."); 
    } else { 
     // register an account and log them in 
    } 
} 

일반적인 사용자 등록 중에 사용자 이름, 전자 메일 및 암호의 세 가지를 묻습니다. 사용자 이름과 이메일은 사용자 이름이 여러 가지로 묶여 있으므로 내 사이트에서 변경할 수 없습니다.

페이스 북으로 로그인 할 때 문제는 콜백 함수에 새로운 사용자를 등록해야한다는 것입니다. 따라서 사용자 이름을 원하는대로 요청할 수는 없습니다.

기본 사용자 이름을 묻는 메시지가 표시 될 수 있습니까? 그런 다음 리디렉션을 수행하십시오.

return Socialite::driver('facebook')->with('username', $request->username)->redirect(); 

그런 다음 해당 데이터를 검색하여 콜백 기능의 인증에 사용 하시겠습니까?

+0

왜 당신이 양식을 사용하여 인증 후 사용자의 사용자 이름을 설정하지? –

답변

0

나는 페이스 북에 대해 잘 모르지만 github을 위해 잘 작동한다. 이 시도 : GitHub의 응용 프로그램에

public function socialLogin($loginFrom){ 
    return Socialite::driver('github') >redirectUrl('http://your-domain.com/callback?data=123')->redirect(); 
} 

가 만 둘 필요가 : http://your-domain.com/callback