Авторизация через Facebook ДЛЕ 10.3

409
20 мая 2017, 20:33

Здравствуйте. Слетела аутентификация через фейсбук на сайте, движок сайта ДЛЕ 10.3, модуль VAuth 8 free, при нажатии на кнопку "Войти через ..." переадресует на пустую страницу, со ссылкой в адресной строке вида: "адрес_сайта.com?auth_site=facebook&code=AQCQsF2sIzRwXNfH_HL8GHcFXoMXL8RXe_0wSgx2mA5z3LXcXkVW42sVlPrg5BCP9weTm6Mq5i8IPwciK-JTBG7DuOCxWa8beFTlWjrDLXayVZ8VMbMR75HJuQryJ8zKUlnZMuLU11zBhtGMjSTymkzMm-2AK97egMr9K-y4RSe5aE9SirA70SVtDAqLchLnM_OyaD3o-1gYnf_OZob9jTopItrBBO-ggdWy6-sy5tb9aQK6YnB-hKlrC1_80FyedJ38SG06VJmpzvIKs1ZgawjyERBAly58KAUymVndG_Vpvs1yR3YHrHL77aXkNBcy8Y1M5SG6rRYliGfsMFh-BlDD#_=_".

Пробовал менять ссылки для запросов, ничего не помогает, своих знаний не хватает, разработчик модуля ответил, что проект более не поддерживает и помочь не сможет, потому прошу помощи здесь.

Вот код php-файла, отвечающего за запрос авторизации

<?php
if( ! class_exists( 'FbFunctions' ) )   {
    class FbFunctions extends VAuthFunctions {
        function oauth_data() {
            global $site_url;
            global $vauth_config;
            $oauth = array();
            $oauth['needfriends'] = 'yes';
            $oauth['needhash'] = 'yes';
            $oauth['prefix'] = 'fb';
            $oauth['prefix2'] = 'facebook';
            $oauth['disconnect_str']    =   "updtime='', ".$oauth['prefix']."_user_friends='', ".$oauth['prefix']."_connected='0', ".$oauth['prefix']."_user_id=''";
            $oauth['scope']             =   'user_birthday, email, user_birthday';
            $oauth['auth_url']          =   'https://www.facebook.com/v2.9/dialog/oauth?client_id=';
            $oauth['app_id']            =   $vauth_config['facebook_app_id'];
            $oauth['app_secret']        =   $vauth_config['facebook_app_secret'];
            $oauth['redirect_url']      =   $site_url . '/engine/modules/vauth/auth.php?auth_site=facebook';
            $oauth['token_request']     =   'https://graph.facebook.com/v2.9/oauth/access_token?client_id=';
            $oauth['site_url']          =   $site_url;
            $oauth['group']             =   $vauth_config['facebook_user_group'];
            if (empty($oauth['group'])) $oauth['group'] = 4;
            if (empty($oauth['app_id'])) die('Не указан идентификатор приложения Facebook');
            if (empty($oauth['app_secret'])) die('Не указан секретный код приложения Facebook');
            return $oauth;
        }       
        // ** Функция получения друзей из facebook
        function get_oauth_friends($oauth) {
            $oauth_friendlist='';
            $oauth['friends']   =   json_decode($this->vauth_get_contents('https://api.facebook.com/method/friends.getAppUsers?access_token='.$oauth['access_token'].'&format=json'),FALSE);
            foreach($oauth['friends'] as $k=>$v) {
                if (is_numeric($v)) {
                    $v = sprintf("%.0f",$v);
                    $oauth_friendlist   = $oauth_friendlist.'&'.$v;
                }
            }
            $oauth['friends']   = substr($oauth_friendlist,1);
            return $oauth['friends'];
        }   
        // ** Функция авторизации в Facebook
        function vauth_auth($oauth) {
            global $auth_code;
            $_SESSION['auth_from']  =   'facebook';
            if  ( empty($oauth['access_token']) and empty($auth_code) ) {
                header('Location: '.$oauth['auth_url'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&scope='.$oauth['scope']);
                die;
            }
            if ( !empty($auth_code) ) {
                parse_str($this->vauth_get_contents($oauth['token_request'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&client_secret='.$oauth['app_secret'].'&code='.$auth_code));
                $oauth['access_token'] = $access_token;     
                if (!empty($oauth['access_token'])) $_SESSION['facebook_access_token']  =   $oauth['access_token']; else { die($my_little_url);header('Location: '.$oauth['site_url']); die(); }
            }
            return $oauth;
        }
        // ** Функция получения информации пользователя из Facebook
        function get_oauth_info($oauth) {
            global $vauth_text;
            global $db;
            global $site_url;
            $oauth_info     =   json_decode($this->vauth_get_contents('https://graph.facebook.com/v2.9/me?access_token='.$oauth['access_token']), FALSE); //Получаем информцию о пользователе
            $oauth['uid']       =   $this->conv_it($oauth_info->id);
            if (!is_numeric($oauth['uid'])) { header('Location: '.$site_url); die(); }
            $oauth['name']      =   $this->conv_it($oauth_info->name); //Имя и фамилия
            $oauth['nick']      =   $this->conv_it($oauth_info->username); //Логин  
            $oauth['birthday'] =    $this->conv_it($oauth_info->birthday); //Логин  
            $oauth['birthday'] =    str_replace('/','.',$oauth['birthday']);
            if ( !empty($oauth['birthday']) ) {
                $bdate = explode('.',$oauth['birthday']);
                $oauth['birthday'] = $bdate[1].'.'.$bdate[0].'.'.$bdate[2];
            }
            if (empty($oauth['nick'])) $oauth['nick'] = $oauth['name'];
            if (empty($oauth['name'])) $oauth['name'] = $oauth['uid'];
            $avatar             =   $this->get_curl_headers('https://graph.facebook.com/'.$oauth['uid'].'/picture?type=large');
            preg_match("!https://(.*?).(?:jpe?g|png|gif)!Ui",$avatar,$avatar);
            $oauth['avatar']        =   $avatar[0];
            if (isset($oauth_info->bio)) {
                $oauth['bio'] = $this->conv_it($oauth_info->bio); //Био
                $oauth['bio']           =       str_replace("\r\n","<br/>",$oauth['bio']);
                $oauth['bio']           =       '<br/>'.$oauth['bio'];
                } else $oauth['bio'] = '';

            if (isset($oauth_info->link)) $oauth['url'] =   $this->conv_it($oauth_info->link); //Адрес страницы
            if (isset($oauth_info->bplace)) $this->conv_it($oauth_info->hometown->name); //Место рождения
            if (isset($oauth_info->quotes)) $this->conv_it($oauth_info->quotes); //Цитаты
            switch( $oauth['gender']    ) {
                case 'male' : $oauth['gender'] = $vauth_text[4];    break;
                case 'female'   : $oauth['gender'] = $vauth_text[5];    break;
            }
            $oauth['location']      =   $this->conv_it($oauth_info->location->name); //Местоположение
            $oauth['last_name'] =   $this->conv_it($oauth_info->last_name); //Фамилия
            $oauth['first_name']    =   $this->conv_it($oauth_info->first_name); //Имя
            $oauth['email']     =   $this->conv_it($oauth_info->email); //Мыло
            $oauth['username']  =   $oauth['first_name']  . ' ' .  $oauth['last_name'];
            $oauth['fullname']  =   $oauth['username'];
            $oauth['bio']       =   $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['bio'] ) ) ) );    
            $oauth['name']      =   $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['name'] ) ) ) );   
            $oauth['nick']      =   $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['nick'] ) ) ) );   
            $oauth['quotes']    =   $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['quotes'] ) ) ) ); 
            $oauth['location']  =   $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['location'] ) ) ) );
            $oauth['update_time']   =   time(); 
            return $oauth;
        }
    }
}
$vauth_api = new FbFunctions ();            
?>
READ ALSO
Как удалить сразу несколько строк через wpdb-&gt;delete()?

Как удалить сразу несколько строк через wpdb->delete()?

Данные в POST запросе приходят в виде ассоциативного массива:

467
Правильная связка MYSQL запроса

Правильная связка MYSQL запроса

Существует три таблицы

332
Объединение двух связей belongsToMany в одну Laravel

Объединение двух связей belongsToMany в одну Laravel

ЗдравствуйтеПодскажите, кто может

343
Не переносится строка в коде php

Не переносится строка в коде php

Есть простенький кодНа почту приходит $message в одну строку

288