protected function processConnect($provider, $service, $access_token)
{
$user_info_callback = Config::get('laravel-social::providers.' . strtolower($provider) . '.fetch_user_info');
if (empty($user_info_callback) || !$user_info_callback instanceof Closure) {
return Redirect::to(Session::pull('mmanos.social.onerror', '/'))->with(Config::get('laravel-social::error_flash_var'), 'There was a problem connecting your account (6).');
}
try {
$user_info = $user_info_callback($service);
} catch (Exception $e) {
}
if (empty($user_info) || !is_array($user_info)) {
return Redirect::to(Session::pull('mmanos.social.onerror', '/'))->with(Config::get('laravel-social::error_flash_var'), 'There was a problem connecting your account (7).');
}
if (empty($user_info['id'])) {
return Redirect::to(Session::pull('mmanos.social.onerror', '/'))->with(Config::get('laravel-social::error_flash_var'), 'There was a problem connecting your account (8).');
}
$provider_id = array_get($user_info, 'id');
$user_provider = Provider::where('provider', strtolower($provider))->where('provider_id', $provider_id)->first();
if ($user_provider) {
if ($user_provider->user_id != Auth::id()) {
return Redirect::to(Session::pull('mmanos.social.onerror', '/'))->with(Config::get('laravel-social::error_flash_var'), 'There was a problem connecting your account (9).');
}
$user_provider->access_token = $access_token;
$user_provider->save();
} else {
$this->linkProvider(Auth::id(), $provider, $provider_id, $access_token);
}
return Redirect::to(Session::pull('mmanos.social.onsuccess', '/'))->with(Config::get('laravel-social::success_flash_var'), 'You have successfully connected your account.');
}