基于用户类型Laravel的Facebook和Google登录

问题描述

我正在Laravel网站上工作,我刚刚集成了Socialite插件,以使用户也可以使用Google和Facebook进行注册。它工作正常,但是在这里我想在用户注册之前设置一个条件。 我有两种类型的用户

  1. 私人卖家
  2. 批发商

我想知道使用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 (将#修改为@)