为什么我不能使用laravel通过oauth登录存储Facebook ID和头像路径?

吉姆·佩特斯

我正在使用Socialite在Facebook中登录/注册到我的应用程序。当我转储$ facebookUser变量时,我看到以下json:

$ facebookuser:

在此处输入图片说明

但是,当我尝试存储id和avatar时,它不存储它,并且我无法显示facebook的用户个人资料图片。我正在使用laravel来存储我的用户。

AuthController.php:

public function handleProviderCallback()
{
    try {
        $user = Socialite::driver('facebook')->user();
    } catch (Exception $e) {
        return redirect('auth/facebook');
    }

    $authUser = $this->findOrCreateUser($user);

    Auth::login($authUser, true);

    return redirect()->route('home')->with('successfullFacebookLogin', Auth::user()->name);
}

private function findOrCreateUser($facebookUser)
{
    // When I dd($facebookuser) it gives json stated above
    $authUser = User::where('facebook_id', $facebookUser->id)->first();

    if ($authUser){
        return $authUser;
    }

    return User::create([
        'name' => $facebookUser->name,
        'email' => $facebookUser->email,
        'facebook_id' => $facebookUser->user['id'],
        'avatar' => $facebookUser->avatar,
        'facebookAccount' => 1

    ]);
 }
里夫基

使用Laravel Socialite提供的方法来访问用户详细信息,而不是直接访问属性,这是所有内置提供程序的可用方法的列表:

$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();

因此,您的代码应为:

private function findOrCreateUser($facebookUser)
{
    // When I dd($facebookuser) it gives json stated above
    $authUser = User::where('facebook_id', $facebookUser->id)->first();

    if ($authUser){
        return $authUser;
    }

    return User::create([
        'name' => $facebookUser->getName(),
        'email' => $facebookUser->getEmail(),
        'facebook_id' => $facebookUser->getId(),
        'avatar' => $facebookUser->getAvatar(),
        'facebookAccount' => 1

    ]);
 }

不要忘记在模型的$fillable属性中声明以上那些列User

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

否则,请手动填写属性:

$user = new User;
$user->name = $facebookUser->getName();
$user->email = $facebookUser-> getEmail();
$user->facebook_id = $facebookUser->getId();
$user->facebookAccount = 1;
$user->save();

return $user;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过github authenticaton获取用户名和头像URL

来自分类Dev

通过github authenticaton获取用户名和头像URL

来自分类Dev

使用不和谐的Oauth2时,如何在我的网站上显示用户名和头像?

来自分类Dev

我们是否使用静态通知或动态通知从服务器获取用户名和头像?

来自分类Dev

为什么我不能使用相对路径在CLion中打开文件?

来自分类Dev

为什么我不能使用LD_LIBRARY_PATH覆盖动态库的搜索路径?

来自分类Dev

mklink-为什么我不能使用。作为目标路径?

来自分类Dev

为什么我不能使用其完整路径来调用该程序?

来自分类Dev

为什么我不能使用字符串作为ID

来自分类Dev

为什么读取时不能使用路径

来自分类Dev

为什么我不能使用带有 ofstream 的 Windows 环境路径来编写文本文件?

来自分类Dev

为什么我不能使用纯javasctipt将ID添加到元素?setattribute不是函数

来自分类Dev

提供文件路径时,为什么不能使用'〜'而不是'/ home / username /'

来自分类Dev

为什么我不能使用带有#号的标准CSS批注来使用@FindBy批注来捕获Selenium Webdriver上具有ID的元素?

来自分类Dev

为什么不能使用OBJECT_ID()函数找到外键?

来自分类Dev

为什么红宝石不能使用大多数2 ^ X数字作为对象ID?

来自分类Dev

为什么我可以使用SQL Developer登录但不能使用SQL * Plus登录?

来自分类Dev

显示与评论关联的用户名和头像时出错

来自分类Dev

Rails 4.1用户名和头像不会保存

来自分类Dev

为什么我的查询对象不能正确使用_id?

来自分类Dev

为什么我不能使用asyncTask

来自分类Dev

传递根驱动器路径时,PowerShell Test-Path为什么不能使用“ \\?\”前缀工作?

来自分类Dev

为什么我不能使用Epiphany浏览器登录Google服务?

来自分类Dev

为什么我不能使用自己的DNS服务器来欺骗Facebook?

来自分类Dev

为什么我不能通过ID更新嵌套的序列化程序?

来自分类Dev

通过ajax调用,为什么我的PHP文档中不能使用此$ var post数据?

来自分类Dev

使用OAuth问题和Firebase通过Facebook登录(input_token中的App_id与Viewing App不匹配)

来自分类Dev

laravel为什么我不能使用releationshiop进行数据获取与联接

来自分类Dev

为什么我不能通过传递变量来确定 karma shim 中 require.context 的路径?

Related 相关文章

  1. 1

    通过github authenticaton获取用户名和头像URL

  2. 2

    通过github authenticaton获取用户名和头像URL

  3. 3

    使用不和谐的Oauth2时,如何在我的网站上显示用户名和头像?

  4. 4

    我们是否使用静态通知或动态通知从服务器获取用户名和头像?

  5. 5

    为什么我不能使用相对路径在CLion中打开文件?

  6. 6

    为什么我不能使用LD_LIBRARY_PATH覆盖动态库的搜索路径?

  7. 7

    mklink-为什么我不能使用。作为目标路径?

  8. 8

    为什么我不能使用其完整路径来调用该程序?

  9. 9

    为什么我不能使用字符串作为ID

  10. 10

    为什么读取时不能使用路径

  11. 11

    为什么我不能使用带有 ofstream 的 Windows 环境路径来编写文本文件?

  12. 12

    为什么我不能使用纯javasctipt将ID添加到元素?setattribute不是函数

  13. 13

    提供文件路径时,为什么不能使用'〜'而不是'/ home / username /'

  14. 14

    为什么我不能使用带有#号的标准CSS批注来使用@FindBy批注来捕获Selenium Webdriver上具有ID的元素?

  15. 15

    为什么不能使用OBJECT_ID()函数找到外键?

  16. 16

    为什么红宝石不能使用大多数2 ^ X数字作为对象ID?

  17. 17

    为什么我可以使用SQL Developer登录但不能使用SQL * Plus登录?

  18. 18

    显示与评论关联的用户名和头像时出错

  19. 19

    Rails 4.1用户名和头像不会保存

  20. 20

    为什么我的查询对象不能正确使用_id?

  21. 21

    为什么我不能使用asyncTask

  22. 22

    传递根驱动器路径时,PowerShell Test-Path为什么不能使用“ \\?\”前缀工作?

  23. 23

    为什么我不能使用Epiphany浏览器登录Google服务?

  24. 24

    为什么我不能使用自己的DNS服务器来欺骗Facebook?

  25. 25

    为什么我不能通过ID更新嵌套的序列化程序?

  26. 26

    通过ajax调用,为什么我的PHP文档中不能使用此$ var post数据?

  27. 27

    使用OAuth问题和Firebase通过Facebook登录(input_token中的App_id与Viewing App不匹配)

  28. 28

    laravel为什么我不能使用releationshiop进行数据获取与联接

  29. 29

    为什么我不能通过传递变量来确定 karma shim 中 require.context 的路径?

热门标签

归档