В настоящее время я добавляю Socialite на свой веб-сайт, чтобы пользователи могли входить в систему с Facebook.
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
}
}
Во время обычной регистрации пользователя я прошу три вещи: имя пользователя, адрес электронной почты и пароль. Имя пользователя и адрес электронной почты - это то, что вы никогда не можете изменить на моем сайте, поскольку их имена пользователей связаны со многими вещами.
Проблема с входом в Facebook заключается в том, что мне нужно регистрировать новых пользователей в функции обратного вызова. Поэтому я не могу спрашивать их, какими они хотят видеть свои имена пользователей.
Есть ли способ предложить пользователю указать предпочтительное имя пользователя? Затем выполните перенаправление следующим образом:
return Socialite::driver('facebook')->with('username', $request->username)->redirect();
Затем получить эти данные, чтобы использовать их для регистрации аутентификации в функции обратного вызова?