【发布时间】:2020-09-17 10:13:57
【问题描述】:
我允许用户使用 Scialite 进行注册(仍在启用 openSSL 的 Laravel homestead 本地工作)。它适用于 FB,除了头像它总是得到默认图像。我正在使用创建应用程序的同一 FB 帐户进行测试(FB 应用程序处于开发模式)
代码
public function handleProviderCallback($provider)
{
$userSocial = Socialite::driver($provider)->user();
$users = User::where(['email' => $userSocial->getEmail()])->first();
if($users){
Auth::login($users);
return redirect('/');
}else{
$avatar_file_name = 'test';
if(!empty($userSocial->getAvatar()) && $userSocial->getAvatar()!='' && $userSocial->getAvatar() != null)
{
$fileContents = file_get_contents($userSocial->getAvatar());
File::put(public_path() . '/uploads/' . $userSocial->getId() . ".jpg", $fileContents);
$avatar_file_name = $userSocial->getId() . ".jpg";
}
$user = User::create([
'name' => $userSocial->getName(),
'email' => $userSocial->getEmail(),
'avatar' => $avatar_file_name,
'provider_id' => $userSocial->getId(),
'provider' => $provider,
]);
Auth::login($user, true);
return redirect()->route('home');
}
}
当我dd($userSocial->getAvatar()) 并复制 URL 时,它会打开默认头像(上图),这是为什么呢?有什么我必须做的 FB 应用程序或登录代码来获取用户的真实头像?
【问题讨论】:
标签: facebook laravel-6 laravel-socialite