Laravel与facebook登录

问题描述 投票:0回答:1

我在登录Facebook时遇到了麻烦。

我正在使用Laravel Socialite,我已按照所有说明操作,但我在方法回调时遇到问题。

这就是我做的:

public function redirectToFacebook()
{
    return Socialite::driver('facebook')->redirect();
}
public function handleFacebookCallback()
{
    $userSocial = Socialite::driver('facebook')->user();
    //return $userSocial;
    $finduser = User::where('facebook_id', $userSocial->id)->first();
    if($finduser){
        Auth::login($finduser);
        return Redirect::to('/');
    }else{
        $new_user = User::create([
           'name'        => $userSocial->name,
           'email'       => $userSocial->email,
           'image'       => $userSocial->avatar_original,
           'facebook_id' => $userSocial->id
        ]);
        Auth::login($new_user);
        return redirect()->back();
    }
}

SQLSTATE [HY000]:常规错误:1364字段'密码'没有默认值

如何获取Facebook的密码?

php laravel facebook laravel-socialite
1个回答
0
投票

使用Socialite时,您不需要Facebook或任何其他服务的密码,因为您将从平台接收可以使用的令牌而不是用户名/密码。

这里的问题是您尝试在不提供密码的情况下创建用户,而密码字段在users表中不可为空。

例如,您可以通过创建更改密码列并使其可为空的迁移来解决此问题,即:

Schema::table('users', function (Blueprint $table) {
    $table->string('password')->nullable()->change();
});

但是,您必须确定这是否是您想要的授权设置,以及您是否希望数据库中的用户没有密码。

© www.soinside.com 2019 - 2024. All rights reserved.