public function postComplete()
	{
		$user_data = Session::get('mmanos.social.pending');
		if (empty($user_data) || !is_array($user_data)) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem logging in to your account (12).'
				);
		}
		
		$user_info = array_merge(array_get($user_data, 'user_info'), Input::all());
		
		$user_validation = Config::get('laravel-social::user_validation');
		if ($user_validation instanceof Closure) {
			$validator = $user_validation($user_info);
		}
		else {
			$validator = Validator::make($user_info, (array) $user_validation);
		}
		
		if ($validator->fails()) {
			return Redirect::action('Mmanos\Social\SocialController@getComplete')
				->withInput()
				->withErrors($validator);
		}
		
		$create_user_callback = Config::get('laravel-social::create_user');
		if (empty($create_user_callback) || !$create_user_callback instanceof Closure) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem logging in to your account (13).'
				);
		}
		
		$user_id = $create_user_callback($user_info);
		if (!$user_id || !is_numeric($user_id) || $user_id <= 0) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem logging in to your account (14).'
				);
		}
		
		$provider = array_get($user_data, 'provider');
		$provider_id = array_get($user_data, 'provider_id');
		$access_token = array_get($user_data, 'access_token');
		
		$this->linkProvider($user_id, $provider, $provider_id, $access_token);
		
		Session::forget('mmanos.social.pending');
		Session::forget('mmanos.social.failed_fields');
		
		Auth::loginUsingId($user_id);
		return Redirect::to(Session::pull('mmanos.social.onsuccess', '/'));
	}