Я использую социальный плагин HybridAuth на своем веб-сайте для входа в систему с facebook и других веб-сайтов,
все работает нормально, но когда я проверил на других компьютерах, произошла ошибка:
Вы не можете получить доступ к этой странице напрямую
и я заметил, что ошибка возникает, когда браузер использует WWW
в адресной строке, браузер на том же компьютере, например: opera не использует www
поэтому в этих браузерах нет ошибки.
Пожалуйста, помогите мне, как я могу исправить эту ошибку, поэтому логин может быть выполнен из любого браузера.
Реазен – это потому, что обратный вызов Facebook в разных php-сеансах и информация о настройке доступа не доступны из сеанса звонящего. Посмотрите на Endpoint.php, если (! $ Storage-> config («CONFIG»)) … Раньше было то, что я использую на своем сайте 127.0.0.1, но return_uri был с localhost из-за ограничений Facebook. В этом случае PHP строит разные сеансы.
добавление "www." к URL-адресу разрешается проблема.
После добавления этого поверх моего контроллера он начал работать
if (session_status() == PHP_SESSION_NONE) { @session_id($_COOKIE['CAKEPHP']); @session_start(); @session_name('CAKEPHP'); }
Читайте здесь https://github.com/hybridauth/CakePHP-HybridAuth/pull/1
Те, кто сталкивается с сообщением об ошибке «Вы не можете получить доступ к этой странице напрямую».
Попробуйте добавить @session_start();
в верхней части ваших файлов.
Это может быть связано с использованием специального обработчика сеанса, который устанавливается session_set_save_handler()
. Я решил эту проблему, добавив собственный обработчик сеанса в верхней части hybridauth/index.php
(расположенный в том же live.php
и config.php
и live.php
). Это заставляет Hybrid Auth использовать ваш пользовательский обработчик сеанса.