Ejemplo n.º 1
0
<?php

error_reporting(E_ALL);
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/social.php';
switch ($_REQUEST['action']) {
    case 'facebook':
    case 'vk':
    case 'google':
        // Получаем данные из соц. сетей
        $api = new MyQubeSocialAuth($_REQUEST['action'], $_REQUEST['code']);
        $data = $api->getData();
        $result = array('auth' => false);
        if ($data) {
            // Сказала ли соц сеть что пользователь восемнадцатилетний
            $have18 = false;
            if (isset($data['age_range']) && ($data['age_range']['min'] >= 18 || $data['age_range']['max'] >= 18)) {
                $have18 = true;
            }
            if (isset($data['bdate']) && strtotime($data['bdate']) < strtotime('-18 years')) {
                $have18 = true;
            }
            $ID = $USER->IsAuthorized() ? $USER->GetID() : false;
            $shorts = array('facebook' => 'FB', 'vk' => 'VK', 'google' => 'GP');
            $token = sha1($ID . "" . date("d.m.Y H:i:s"));
            if (!$ID && $APPLICATION->get_cookie("MQ_REGISTRATION_TOKEN")) {
                // Вход по текену из приложения
                $userByAppToken = CUser::GetList($by = 'id', $order = 'desc', array('UF_TOKEN' => $APPLICATION->get_cookie("MQ_REGISTRATION_TOKEN")), array('FIELDS' => array('ID')))->Fetch();
                if (intval($userByAppToken['ID']) > 0) {
                    $ID = $userByAppToken['ID'];
                }