junkystu junkystu - 7 months ago 112
PHP Question

Laravel Socialite first and last name

I'm adding social authentication to an application using Laravel's Socialite. I can retrieve the full name but not the first and last names separately. After the callback happens and Socialite is handling it, the user is retrieved successfully. If I am to dump the user I get back from

$user = this->social->driver('facebook')->user();
I get the following:

object(Laravel\Socialite\Two\User)#459 (8) {
["token" ]=> string(209) "{token}"
["id"] => string(17) "{socialID}"
["nickname"] => NULL
["name"] => string(14) "{Full Name}"
["email"] => string(19) "{Email address}"
["avatar"] => string(69) "https://graph.facebook.com/v2.4/{socialID}/picture?type=normal"
["user"] => array(6) {
["first_name"] => string(6) "{First name}"
["last_name"] => string(7) "{Last mame}"
["email"] => string(19) "{Email address}"
["gender"] => string(4) "male"
["verified"] => bool(true)
["id"] => string(17) "{socialID}"
}
["avatar_original"] => string(68) "https://graph.facebook.com/v2.4/{socialID}/picture?width=1920"


}

I can obtain the full name or email via
$user->name
or
$user->email
however, I can not get the separate first and last names. I have tried
$user->first_name
as well as trying to dump the
$user->user
array but all I see is undefined property errors.

I do not want to do something weird like extract it from the full name when the separate first and last name are clearly there as it can get ugly when middle names are present.

I have Googled my way around and weirdly, nobody came across this issue. Am I missing something from the docs?
Any suggestions on how to retrieve the first and last name from the
user
array are greatly appreciated.

Answer

According to the dump of the $user var you should be able to access the name values by doing:

$user->user['first_name'] and $user->user['last_name']