コード例 #1
0
 public function loginAction()
 {
     if (Tools::isPost()) {
         $email = Tools::getValue('email');
         $password = Tools::getValue('password');
         $sql = "select ID, UniversalID, PasswordHash from Users where (UniversalType = 1) and (email = '{$email}');";
         $user = GetMainConnection()->query($sql)->fetch();
         if (!empty($user['ID'])) {
             if (VerifyPassword($password, $user['PasswordHash'])) {
                 unset($password);
                 $sql = "update Users " . "set RememberMe = '" . POSTBoolAsSQLStr('RememberMeEdt') . "' " . "where (ID = " . $user['ID'] . ");";
                 GetMainConnection()->exec($sql);
                 if (LoginUsingUniversalID($user['UniversalID'])) {
                     if (empty($_SESSION['login_redirect'])) {
                         return AddAlertMessage('success', 'Добро пожаловать!', '/');
                     } else {
                         $vRedirect = $_SESSION['login_redirect'];
                         unset($_SESSION['login_redirect']);
                         Redirect($vRedirect);
                     }
                 }
             } else {
                 unset($password);
                 AddAlertMessage('danger', 'Неверный e-mail или пароль.');
             }
         } else {
             unset($password);
             AddAlertMessage('danger', 'E-mail не найден.');
         }
     }
     // https://developers.facebook.com/docs/php/gettingstarted/5.0.0
     // https://developers.facebook.com/docs/php/Facebook/5.0.0
     // http://25labs.com/tutorial-integrate-facebook-connect-to-your-website-using-php-sdk-v-3-x-x-which-uses-graph-api/
     require_once PATH_SITE_ROOT . 'core/facebook-php-sdk-v4-5.0-dev/src/Facebook/autoload.php';
     $facebook = new Facebook\Facebook(['app_id' => facebook_app_id, 'app_secret' => facebook_app_secret, 'default_graph_version' => facebook_graph_version]);
     $helper = $facebook->getRedirectLoginHelper();
     $permissions = ['email'];
     // optional
     $FB_LoginUrl = $helper->getLoginUrl('http://karapuz.life/app/common/facebook_login_callback.php', $permissions);
     $VK_LoginUrl = 'https://oauth.vk.com/authorize?client_id=' . vk_app_id . '&scope=offline,email&redirect_uri=' . urlencode('http://karapuz.life/app/common/vk_login_callback.php') . '&response_type=code';
     $this->view->setVars(array('FB_LoginUrl' => $FB_LoginUrl, 'VK_LoginUrl' => $VK_LoginUrl));
     $this->view->breadcrumbs = array(array('url' => '/auth/login', 'title' => 'Вход на сайт'));
     $this->view->meta = array('meta_title' => 'Войти на сайт', 'meta_description' => 'Войти на сайт', 'meta_keywords' => '');
     $this->view->generate();
 }
コード例 #2
0
 $sql = "select ID " . "from Users " . "where (UniversalID = '{$vUniversalID}');";
 $rec = GetMainConnection()->query($sql)->fetch();
 if (empty($rec['ID'])) {
     try {
         // Returns a Facebook\FacebookResponse object
         $response = $facebook->get('/me?fields=id,first_name,last_name,email', $accessTokenStr);
         $user = $response->getGraphUser();
         $userEmail = $user->getField('email');
         if (empty($userEmail)) {
             return AddAlertMessage('danger', 'Ошибка при регистрации! (Эл. почта не указана).', '/');
         }
         $sql = "select ID from Users where (Email = '{$userEmail}');";
         $checkuser = GetMainConnection()->query($sql)->fetch();
         if (!empty($checkuser['ID'])) {
             return AddAlertMessage('danger', 'Пользователь с эл. почтой: "' . $userEmail . '" уже зарегистрирован на сайте.', '/');
         }
         /*echo '<h3>User</h3>';
             var_dump($user);*/
         $sql = "insert into Users(UniversalType, UniversalID, AccessToken, UserName, Email, EmailConfirmed, RememberMe) " . "values(2, '{$vUniversalID}', '{$accessTokenStr}', '{$userEmail}', '{$userEmail}', 1, 1) " . "on duplicate key update " . "UniversalID = '{$vUniversalID}';";
         GetMainConnection()->exec($sql);
         $UserID = GetMainConnection()->lastInsertId();
         $sql = "insert into UserData(UserID, FirstName, LastName) " . "values({$UserID}, '" . $user->getField('first_name') . "', '" . $user->getField('last_name') . "') " . "on duplicate key update " . "UserID = {$UserID};";
         GetMainConnection()->exec($sql);
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         /*echo 'Graph returned an error: ' . $e->getMessage();
             exit;*/
         return AddAlertMessage('danger', 'Ошибка при регистрации! (3)', '/');
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         /*echo 'Facebook SDK returned an error: ' . $e->getMessage();
             exit;*/
         return AddAlertMessage('danger', 'Ошибка при регистрации! (4)', '/');
コード例 #3
0
function TryToLoginUsingCookie()
{
    $CookieName = "unvusrid";
    if (isset($_SESSION['unvusrid'])) {
        // Продлить срок жизни cookies до 60 дней
        SetCookie($CookieName, Encrypt_Blowfish($_SESSION['unvusrid']), time() + 3600 * 24 * 60, "/");
        // время жизни 60 дней
        unset($_SESSION['unvusrid']);
    }
    if (isset($_COOKIE[$CookieName]) && GetUserID() == 0) {
        LoginUsingUniversalID(Decrypt_Blowfish($_COOKIE[$CookieName]));
    }
}