Как получить Email пользователя при авторизации Вконтакте через Laravel Socialite
Стандартный способ получения эл. почты в Laravel Socialite не работает для Вконтакте:
$userSocial = Socialite::driver('vkontakte')->user();
$user = new User;
$user->name = $userSocial->name;
$user->email = $userSocial->email;
$user->save();
Это происходит потому, что Вконтакте возвращает ответ в нестандартном формате JSON. Вот так можно получить почту пользователя:
public static function getUserEmail($user, $provider)
{
if($provider == 'vkontakte') {
return $user->accessTokenResponseBody['email'] ?? null;
}
return $user->email;
}
Поделиться
Поделиться
Отправить
Твитнуть
Вотсапнуть