HybridAuth не аутентифицируется при использовании пользовательского пути php-сессии
У меня проблема при использовании плагина HybridAuth. Я включил плагин как всплывающее окно на моей домашней странице. При нажатии кнопки входа на домашней странице плагин загружается в colorbox.
На моем сервере я не могу использовать путь сохранения по умолчанию php session, поэтому я установил его как путь php temp для сохранения сеанса, как показано ниже в index.php моей корневой папки.
$dir = sys_get_temp_dir();
session_save_path($dir);
После обновления этого кода плагин аутентифицирует социальные сети, которые клиент успешно отбирает и возвращается обратно на мой сайт, но не проходит ниже условия,
$hybridauth->isConnectedWith( $_GET["connected_with"] ) // it is always return false
Во втором случае я также обновил путь сохранения сеанса в index.php из папки плагина, но в это время во всплывающем окне входа в систему вместо отображения имени входа в систему он непосредственно показывает страницу с ошибкой, как показано ниже.
"You cannot access this page directly."
Любая помощь будет оценена по достоинству. Спасибо заранее.
Ответы
Ответ 1
Как часто: окончательная первоначальная версия RTM и обнаружение использования isConnectedWith
isConnectedWith()Возвращает true или false, если текущий пользователь подключен к данному поставщик. Hybrid_Auth:: isConnectedWith() использует сеансы PHP. Знать подробнее см. раздел "Сеансы HybridAuth".
Hybrid_Auth::isConnectedWith(provider)
Где поставщик - имя тестируемой службы. например: Hybrid_Auth:: isConnectedWith ('Twitter')
Убедитесь, что ваш $_GET возвращает хорошее имя службы.
Если вам нужен список подключенных поставщиков: Hybrid_Auth:: getConnectedProviders()
Если вы хотите проверить данные сеанса: Hybrid_Auth:: getSessionData()
API!
Ответ 2
Проблема заключается в вашем пути сеанса по умолчанию:
$dir = sys_get_temp_dir();
session_save_path($dir);
Я бы распечатал сеансы, чтобы узнать, что зарегистрировано. Почему у вас возникают проблемы с интерфейсом сеанса по умолчанию? Я бы не попытался изменить его и убедиться, что он работает первым. Это изменяет основные функции HybridAuth.
Почему вы не можете использовать путь сохранения php-сессии по умолчанию? вы на общем хосте?
-
Если у вас есть доступ к оболочке, убедитесь, что пользователь веб-сервера имеет доступ на запись в каталог; которые должны позаботиться об этом.
Ответ 3
Добавьте собственный обработчик сеанса в верхней части hybridauth/index.php
(расположенный в том же каталоге, что и config.php
и live.php
).
Это заставляет Hybrid Auth использовать ваш пользовательский обработчик сеанса.