Я пытаюсь написать плагин для своего веб-сайта для подключения к facebook с использованием классов HybridAuth.
Я только что попробовал следующий код
function authenticatewith( $provider ) {
ini_set('display_errors','on');
//includes
$config = dirname(__FILE__) . '/hybridauth-2.1.2/hybridauth/config.php';
require_once("hybridauth-2.1.2/hybridauth/Hybrid/Auth.php");
$provider_name = $provider;
//$config = $this->getconfig($id);
try {
// initialize Hybrid_Auth with a given file
$hybridauth = new Hybrid_Auth($config);
// try to authenticate with the selected provider
$adapter = $hybridauth->authenticate($provider_name);
// then grab the user profile
$user_profile = $adapter->getUserProfile();
}
catch( Exception $e ) {
echo "Error: please try again!";
echo "Original error message: " . $e->getMessage();
}
echo "User Details: ";
var_dump($user_profile);
}
Когда я вызываю эту функцию, формируйте класс плагина. В браузере выдает следующую ошибку:
Вы не можете получить доступ к этой странице напрямую.
... и URL-адрес в адресной строке браузера выглядит примерно так:
После поиска в stackoverflow я нашел аналогичный вопрос, в котором описывается аналогичная проблема, но я не смог понять, как применить предложенные там предложения к моему коду, чтобы исправить проблему:
Вы не можете получить доступ к этой странице напрямую - вход через социальную сеть HybridAuth
Скорее всего, проблема в разных доменных именах, так как мой сайт работает на двух разных доменах.
Как я могу исправить свой код, чтобы предотвратить эту проблему?
Подробнее
У меня есть ссылка на facebook на www.bca.com (пример), затем, когда вы нажимаете, она переходит к файлу controller.php, который будет получать доступ к плагину, который я пишу. Обычно, если я сохраняю папку на веб-сайте, такую как папка плагина, которая недоступна для www.bca.com, вместо этого она доступна по какому-либо другому доменному имени.
Я пытаюсь сказать, что сеанс начинается в bca.com, но классы Hybridauth сохраняются в каком-то другом домене. И я думаю, что это причина, по которой появляется ошибка.
Я попытался отладить и обнаружил, что ошибка появляется из следующих строк в файле Endpoint.php.
// Check if Hybrid_Auth session already exist
if (! $storage->config("CONFIG")) {
header("HTTP/1.0 404 Not Found");
die("You cannot access this page directly.");
}
Я пытался исправить это с последних 3 дней. Но я застрял на этом этапе, пожалуйста, помогите мне. заранее спасибо