Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
ok.php
Содержимое
<?php /** * Страница авторизации пользователя в Одноклассниках. */ require_once (__DIR__ . '/../autoloader.php'); use app\core\external\ok\Auth; use app\core\exceptions\BaseException; use app\core\external\ok\User; use app\core\external\ok\AccessToken; use app\users\external\OkUser; $location = App::$request->get('r', '/'); $location = urldecode($location); if (App::$user->isGuest() == false) { header('Location: ' . $location); exit; } if (isset($_GET['error'])) { header('Location: ' . App::$config['failAuthUrlRedirect']); exit; } if (isset($_GET['code']) == false) { $url = (new Auth()) ->setClientId(App::$config['okClientId']) ->addScope('VALUABLE_ACCESS') ->addScope('LONG_ACCESS_TOKEN') ->setRedirectUri(App::$config['okRedirectUri']) ->setResponseType('code') ->setLayout('w') ->setState($location) ->getAuthUrl(); header('Location: ' . $url); } else { $code = App::$request->get('code'); if ($code == null) { App::$response->error404(); exit; } $location = App::$request->get('state', '/'); $location = urldecode($location); // получаем accessToken $accessToken = (new AccessToken()) ->setCode($code) ->setClientId(App::$config['okClientId']) ->setRedirectUri(App::$config['okRedirectUri']) ->setClientSecret(App::$config['okPrivateKey']) ->setGrantType('authorization_code') ->getAccessToken(); // получаем информацию о пользователе. $userInfo = (new User()) ->setAccessToken($accessToken) ->setPublicKey(App::$config['okPublicKey']) ->setSecretKey(App::$config['okPrivateKey']) ->getUserInfo(); $string = $userInfo; // декодируем Json строку $userInfo = json_decode($userInfo); if ($userInfo == null) { throw new BaseException("Одноклассники, Не удалось прочитать ответ от сервера {$string}"); } // Если пользователь из социальной сети не связан ни с каким аккаунтом, // то мы связываем его с уже имеющимся аккаунтом или создаем новый аккаунт // if (OkUser::isExistUser($userInfo->uid) == false) { if (isset($userInfo->uid) == false) { header('Location: ' . App::$config['failAuthUrlRedirect']); exit; } $userId = null; $needUserConfirm = false; // проверяем, есть ли такой пользователь с таким Email в сети или нет. if (isset($userInfo->email)) { $userId = App::$user->getIdByEmail($userInfo->email); } if ($userId == null) { $avatar = null; if (isset($userInfo->photo_id) == true && mb_strpos($userInfo->pic_1, "i.mycdn.me/res/stub") === false) { // аватарка пользователя нормальная. // можно ее загружать. $avatar = $userInfo->pic_3; } $needUserConfirm = true; $userId = OkUser::createUser( $userInfo->uid, $userInfo->name, (isset($userInfo->birthday)) ? $userInfo->birthday : null, (isset($userInfo->email)) ? $userInfo->email : null, $avatar, OkUser::getConvertedSexIdByString( isset($userInfo->gender) ? $userInfo->gender : null ), 1 ); } // связываем пользователя и пользователя из социальной сети, // но не подтверждаем связь до тех пор, пока пользователь не подтвердит ее сам через Email OkUser::assignUser($userId, OkUser::getExternalSiteCode(), $userInfo->uid); if ($needUserConfirm == true) { OkUser::confirmUserId(OkUser::getExternalSiteCode(), $userInfo->uid); } } else { $userId = OkUser::getUserIdByExternalId($userInfo->uid); } // $userId - наш ID пользователя // $tokenJson->user_id - ID пользователя социальной сети // $tokenJson->email (может не быть) - email пользователя из социальной сети. // на этом этапе у нас уже есть $userId, который из нашей таблицы. Нам осталось проверить, // подтвержден ли вход для данного пользователя или нет. $user = App::$user->getUser($userId); if (OkUser::isUserConfirmed(OkUser::getExternalSiteCode(), $userInfo->uid) == false) { $hash = OkUser::generateUserHashCode(OkUser::getExternalSiteCode(), $userInfo->uid); OkUser::notifyUser($user, $hash); header('Location: /confirm_wait.php?hash=' . $hash); exit; } else { // смотрим, есть ли у пользователя email, // если его нет - отправляем на страницу ввода email адреса. if ($user['mail'] == '') { header('Location: /register_finish.php?hash=' . md5($user['id'] . 'xcs2sadxkc')); exit; } App::$user->login($userId); header('Location: ' . $location); } }
/auth/
Имя
Дата
Размер
..
2026-10-02
fb.php
2017-07-03
2 кб.
google.php
2026-06-09
141 байт
google.php~
2023-09-12
6 кб.
ok.php
2023-09-12
6 кб.
ok.php~
2017-07-05
6 кб.
vk.php
2023-09-12
5 кб.
vk.php~
2019-01-15
5 кб.
/auth
Загрузить файлы
Файл 1
Файл 2
Файл 3