如何解决基于用户类型Laravel的Facebook和Google登录
我正在Laravel网站上工作,我刚刚集成了Socialite插件,以使用户也可以使用Google和Facebook进行注册。它工作正常,但是在这里我想在用户注册之前设置一个条件。 我有两种类型的用户:
- 私人卖家
- 批发商
我想知道使用Google或Facebook注册的用户类型。如果用户是卖方,我只想将值保存在存储其他用户数据(如电子邮件,用户名,令牌)的同一表中。 为此,我将单选按钮放在“注册”按钮之前,但是我不知道在注册之前如何使用单选按钮值,并将其与“注册”按钮一起使用。
有什么建议吗?
刀片
<form id="login">
<fieldset class="mt-4">
<label class="user_type" >What is User Type?</label>
<div class="some-class">
<input value="user" type="radio" class="radio" name="user_type"/>
<label>Private</label>
<input value="company" type="radio" class="radioname="user_type"/>
<label>Company</label>
</div>
<div>
</div>
</fieldset>
</form>
路线
Route::get('auth/{provider}','SocialController@redirectToProvider');
Route::get('auth/{provider}/callback','SocialController@handleProviderCallback');
控制器
class SocialController extends Controller
{
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
try {
$user = Socialite::driver($provider)->stateless()->user();
// $users = User::where(['email' => $user->getEmail()])->first();
$finduser = User::where('provider_id',$user->id)->first();
// $user = Socialite::driver('facebook')->user();
// $finduser = User::where('provider_id',$user->id)->first();
if ($finduser) {
Auth::login($finduser);
return redirect('/');
} else {
$newUser = User::create(['name' => $user->name,'email' => $user->email,'provider' => $provider,'provider_id' => $user->id]);
Auth::login($newUser);
return redirect('/');
}
} catch (Exception $e) {
return redirect('auth/facebook');
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。