Intereting Posts
Запускать php-скрипт только из Cron или проверить, запрашивается ли запрос cron? Как определить HTTP-метод в CodeIgniter Эффективное копирование / дублирование / резервное копирование таблиц базы данных – mysql Единичное тестирование для поддержки Unicode Amazon MWS API w / PHP: альтернатива getFeedSubmissionResult Автоматически использовать __LINE__ и __FILE__ относительно функции where Как получить общее количество элементов в таблице DynamoDB? передача имени id при нажатии с помощью ajax на php Эхо-результаты сложного запроса INNER JOIN с несколькими таблицами Проблема DOMDocument :: validate () Получение действия контроллера до того, как код поведения будет запущен в Yii2 Как получить значение переменной jQuery в файле PHP Переменная проблема не отображается на лицевой стороне Группировка многомерного массива PHP и вычисление суммы определенного ключа для каждого элемента массива Слияние массивов с теми же клавишами

PHP HybridAuth социальный signin не работает вообще. Перенаправление на? Hauth.start = Facebook & hauth.time

Я пытался сделать работу с социальным именем HybridAuth на этом простом php-сайте. Загрузили HybridAuth и установили его. Затем выяснилось, что даже примеры не работают для социального входа (тоже на удаленном сервере).

Обычный пример signin_signup отлично работает. Но всякий раз, когда я нажимаю ссылку для входа в социальную сеть (т. Е. Facebook, twitter), она перенаправляет меня на (MY_BASE_URL / index.php? Hauth.start = Facebook и hauth.time), не отображая никаких сообщений о подключении / сообщениях об ошибках вообще.

Я внимательно прочитал документацию и другие решения, размещенные здесь. Скорректировал мой config.php, чтобы иметь базовый URL-адрес, например http://example.com/index.php . Но он просто не отвечает. Есть что-то, что мне не хватает? Я потратил 2 дня на это.

вот мой config.php

return array( "base_url" => "http://example.com/index.php", "providers" => array ( // openid providers "OpenID" => array ( "enabled" => false ), "AOL" => array ( "enabled" => false ), "Yahoo" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "Google" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), "Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "xxxxxxxxx", "secret" => "xxxxxxx" ) ), "Twitter" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxxx" ) ), // windows live "Live" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "MySpace" => array ( "enabled" => false, "keys" => array ( "key" => "", "secret" => "" ) ), "LinkedIn" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxx" ) ), "Foursquare" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), ), // if you want to enable logging, set 'debug_mode' to true then provide a writable file by the web server on "debug_file" "debug_mode" => false, "debug_file" => "" ); 

Может кто-нибудь, пожалуйста, помогите мне? У меня возникло ощущение, что он не работает очень хорошо после поиска в Интернете довольно долго. Если это так, может ли кто-нибудь указать на лучшую альтернативную библиотеку openource / free social signin?

Solutions Collecting From Web of "PHP HybridAuth социальный signin не работает вообще. Перенаправление на? Hauth.start = Facebook & hauth.time"

В дополнение к собственному ответу tintinboss, я обнаружил, что мне нужно также проверить hauth_done (это было для примера тестирования Facebook):

 if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done'])) { Hybrid_Endpoint::process(); } 

Это, наконец, получило его работу – спасибо tintinboss за полезный ответ!

Хорошо, я решил это сам.

Как указывалось ранее, документация действительно не была хорошей. Вот решение для тех, кто хочет интегрировать этот код в будущем

Во-первых, вы должны сделать свой baseurl следующим образом в config.php

 "base_url" => "http://yoursite.com/subdomain/index.php", OR "base_url" => "http://yoursite.com/index.php", 

Обратите внимание, что я не использую www. Не знаю, почему, но это не работает с www.

Теперь сложная часть, вы должны включить это в свой файл index.php

 require_once( "PATH_TO_HYBRID/Auth.php" ); require_once( "PATH_TO_HYBRID/Endpoint.php" ); if (isset($_REQUEST['hauth_start'])) { Hybrid_Endpoint::process(); } 

Процесс Endpoint – это то, что заставляет вас перенаправлять на пустую страницу, если она не указана. И вы должны добавить его в index.php, насколько я тестировал.

Теперь код должен работать нормально 🙂 Я буду рад, если он кому-то поможет.

Ответы @tintinboss и @dJomp отсортировали меня. однако мне все еще нужно было получить информацию от зарегистрированного пользователя, что действительно заняло у меня много времени. Здесь я разделяю окончательную версию, которая заставит вас подальше от этого ужасного цикла.

 $config = require 'config.php'; require_once( "Hybrid/Auth.php" ); require_once( "Hybrid/Endpoint.php" ); if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done'])) { Hybrid_Endpoint::process(); } else { try { $hybridauth = new Hybrid_Auth( $config ); $google = $hybridauth->authenticate( "Google"); $user_profile = $google->getUserProfile(); echo "Hi there! " . $user_profile->email; } catch( Exception $e ){ echo "Ooophs, we got an error: " . $e->getMessage(); } } по $config = require 'config.php'; require_once( "Hybrid/Auth.php" ); require_once( "Hybrid/Endpoint.php" ); if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done'])) { Hybrid_Endpoint::process(); } else { try { $hybridauth = new Hybrid_Auth( $config ); $google = $hybridauth->authenticate( "Google"); $user_profile = $google->getUserProfile(); echo "Hi there! " . $user_profile->email; } catch( Exception $e ){ echo "Ooophs, we got an error: " . $e->getMessage(); } } 

Привет, я пробовал все решения этой проблемы, но никто не достиг решения. Я решил эту проблему.

"base_url" => 'http: //'.$_SERVER [' SERVER_NAME '] .'inauth / auth',

Ключевым моментом здесь является имя сервера. Кроме того, файлы cookie записывают ваши сеансы, и вы не можете просматривать сделанные вами изменения. Очистите файлы cookie и повторите попытку.