Laravel Socialite:在DB中保存新用户

时间:2017-12-06 18:00:36

标签: php laravel authentication

我正在与Laravel Socialite合作,用户应该可以使用Github,Twitter和正常方式登录。我使用php artisan make:auth进行了身份验证,因为我想自己做。所以我调用模型Username而不是User(正常情况下)。

问题是用户没有存储在我的数据库中。我的代码有什么问题吗?

这是我的功能:

public function handleProviderCallback($provider){

        $socialize_user = Socialite::driver($provider)->user();
        $social_user_id = $socialize_user->getId();


        $user = Username::where('provider_id', $social_user_id)->first();

        //register if no user
        if(!$user){
            $user = new Username();
            $user->name = $socialize_user->getName();
            $user->email = $socialize_user->getEmail();
            $user->provider_id = $social_user_id;
            $user->save();
        }

        Auth::login($user);

        return redirect('to_dos');

    }

修改 用户名模型:

class Username extends Model implements AuthenticatableContract, CanResetPasswordContract
{

    use Authenticatable, CanResetPassword;

    /*
     * Database table used by model.
     *
     */
    protected $table = 'usernames';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'provider_id'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

似乎一切正常,但如果我在我的数据库中查看,则没有新条目。希望你们中的任何人都知道如何正确行事

0 个答案:

没有答案