我正在与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',
];
}
似乎一切正常,但如果我在我的数据库中查看,则没有新条目。希望你们中的任何人都知道如何正确行事