Файл: WoWonder 1.2.1/Script/login-with.php
Строк: 140
<?php
// +------------------------------------------------------------------------+
// | @author Deen Doughouz (DoughouzForest)
// | @author_url 1: http://www.wowonder.com
// | @author_url 2: http://codecanyon.net/user/doughouzforest
// | @author_email: wowondersocial@gmail.com
// +------------------------------------------------------------------------+
// | WoWonder - The Ultimate Social Networking Platform
// | Copyright (c) 2016 WoWonder. All rights reserved.
// +------------------------------------------------------------------------+
include('assets/import/hybridauth/config.php');
include('assets/import/hybridauth/Hybrid/Auth.php');
$types = array(
'Google',
'Facebook',
'Twitter',
'LinkedIn',
'Vkontakte',
'Instagram'
);
if (isset($_GET['provider']) && in_array($_GET['provider'], $types)) {
$provider = Wo_Secure($_GET['provider']);
try {
$hybridauth = new Hybrid_Auth($LoginWithConfig);
$authProvider = $hybridauth->authenticate($provider);
$user_profile = $authProvider->getUserProfile();
if ($user_profile && isset($user_profile->identifier)) {
$name = $user_profile->firstName;
if ($provider == 'Google') {
$notfound_email = 'go_';
$notfound_email_com = '@google.com';
} else if ($provider == 'Facebook') {
$notfound_email = 'fa_';
$notfound_email_com = '@facebook.com';
} else if ($provider == 'Twitter') {
$notfound_email = 'tw_';
$notfound_email_com = '@twitter.com';
} else if ($provider == 'LinkedIn') {
$notfound_email = 'li_';
$notfound_email_com = '@linkedIn.com';
} else if ($provider == 'Vkontakte') {
$notfound_email = 'vk_';
$notfound_email_com = '@vk.com';
} else if ($provider == 'Instagram') {
$notfound_email = 'in_';
$notfound_email_com = '@instagram.com';
$name = $user_profile->displayName;
}
$user_name = $notfound_email . $user_profile->identifier;
$user_email = $user_name . $notfound_email_com;
if (!empty($user_profile->email)) {
$user_email = $user_profile->email;
}
if (Wo_EmailExists($user_email) === true) {
Wo_SetLoginWithSession($user_email);
header("Location: " . $config['site_url']);
exit();
} else {
$str = md5(microtime());
$id = substr($str, 0, 9);
$user_uniq_id = (Wo_UserExists($id) === false) ? $id : 'u_' . $id;
$social_url = substr($user_profile->profileURL, strrpos($user_profile->profileURL, '/') + 1);
$re_data = array(
'username' => Wo_Secure($user_uniq_id),
'email' => Wo_Secure($user_email),
'password' => Wo_Secure($user_email),
'email_code' => Wo_Secure(md5($user_uniq_id)),
'first_name' => Wo_Secure($name),
'last_name' => Wo_Secure($user_profile->lastName),
'avatar' => Wo_Secure(Wo_ImportImageFromLogin($user_profile->photoURL)),
'src' => Wo_Secure($provider),
'lastseen' => time(),
'active' => '1'
);
if ($provider == 'Google') {
$re_data['about'] = Wo_Secure($user_profile->description);
$re_data['google'] = Wo_Secure($social_url);
}
if ($provider == 'Facebook') {
$fa_social_url = @explode('/', $user_profile->profileURL);
$re_data['facebook'] = Wo_Secure($fa_social_url[4]);
}
if ($provider == 'Twitter') {
$re_data['twitter'] = Wo_Secure($social_url);
}
if ($provider == 'LinkedIn') {
$re_data['about'] = Wo_Secure($user_profile->description);
$re_data['linkedIn'] = Wo_Secure($social_url);
}
if ($provider == 'Vkontakte') {
$re_data['about'] = Wo_Secure($user_profile->description);
$re_data['vk'] = Wo_Secure($social_url);
}
if ($provider == 'Instagram') {
$re_data['instagram'] = Wo_Secure($user_profile->username);
}
if (Wo_RegisterUser($re_data) === true) {
Wo_SetLoginWithSession($user_email);
$wo['user'] = $re_data;
$body = Wo_LoadPage('emails/login-with');
$headers = "From: " . $config['siteName'] . " <" . $config['siteEmail'] . ">rn";
$headers .= "Content-Type: text/html; charset=UTF-8rn";
@mail($re_data['email'], 'Thank you for your registration.', $body, $headers);
header("Location: " . $config['site_url']);
exit();
}
}
}
}
catch (Exception $e) {
switch ($e->getCode()) {
case 0:
echo "Unspecified error.";
break;
case 1:
echo "Hybridauth configuration error.";
break;
case 2:
echo "Provider not properly configured.";
break;
case 3:
echo "Unknown or disabled provider.";
break;
case 4:
echo "Missing provider application credentials.";
break;
case 5:
echo "Authentication failed The user has canceled the authentication or the provider refused the connection.";
break;
case 6:
echo "User profile request failed. Most likely the user is not connected to the provider and he should to authenticate again.";
break;
case 7:
echo "User not connected to the provider.";
break;
case 8:
echo "Provider does not support this feature.";
break;
}
echo "an error found while processing your request!";
echo " <b><a href='" . Wo_SeoLink('index.php?tab1=welcome') . "'>Try again<a></b>";
}
} else {
header("Location: " . Wo_SeoLink('index.php?tab1=welcome'));
exit();
}