gpt4 book ai didi

php - Laravel Socialite 传递和检索自定义数据?

转载 作者:行者123 更新时间:2023-12-04 03:07:57 28 4
gpt4 key购买 nike

我目前正在将 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();

然后检索该数据以将其用于回调函数中的身份验证注册?

最佳答案

出于某种原因,可选参数对我不起作用,所以我最终使用 session 将变量从重定向方法传递到回调方法。这不是最好的方法,但可以解决问题。

public function redirectToFacebookProvider()
{
// save anything you will need later, for example an url to come back to
Session::put('url.intended', URL::previous());

return Socialite::driver('facebook')->redirect();
}

public function handleFacebookProviderCallback()
{
// handling....

$url = Session::get('url.intended', url('/'));
Session::forget('url.intended');

return redirect($url);
}

https://laracasts.com/discuss/channels/laravel/socialite-return-parameters-in-callback?page=0 获得这个答案

来自Sending additional parameters to callback uri in socialite package for laravel

关于php - Laravel Socialite 传递和检索自定义数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373499/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com