我对第三方登录感到困惑

时间:2018-09-16 05:52:33

标签: php laravel facebook login

我是新的PHP编码器。 我使用Facebook登录名作为第三方。 我可以成功地从Facebook API获取一些用户数据,但是在创建数据库的新用户时遇到了一些错误。

  

密码剂量有一个默认值

应该在密码字段中插入什么数据?

facebookcallback函数

  public function handleFacebookCallback()
{
    try {
        $user = Socialite::driver('facebook')->user();
        $create['name'] = $user->getName();
        $create['email'] = $user->getEmail();
        $create['facebook_id'] = $user->getId();
        $creaet['memberId'] = $user->getId();

        $userModel = new User;
        $createdUser = $userModel->addNew($create);
        Auth::loginUsingId($createdUser->id);


        return redirect()->route('/loginsucces');


    } catch (Exception $e) {

        return redirect('/');

    }
}

我在Internet上找到了一些信息,我知道我在Facebook回调中获得了accessToken。然后我使用此令牌

  

Socialite :: driver('facebook')-> user();

要求Facebook获取一些用户信息。 然后,使用fb的Web登录过程检查数据库是否具有用户数据。

如果否,则创建新的用户数据。 但是,该错误发生在创建中。

OMG !!!!我没有在密码字段中插入任​​何数据。

我在互联网上找不到任何答案。

有没有人可以帮助我解决这个问题?

2 个答案:

答案 0 :(得分:1)

在用户数据库迁移文件中,使密码字段为空。像这样

$table->string('password')->nullable();

这将不再显示密码错误,因为我们在创建具有nullable的用户时将其设为可选。

希望这对您有所帮助。

答案 1 :(得分:1)

当您从Facebook创建新用户时,尝试通过插入密码。并确保您的数据库列密码允许使用空值,以便新用户创建时没有密码