(репост с https://groups.google.com/forum/?hl=ru&fromgroups=#!topic/hybridauth/CWo2R9suYts)
Начиная с Facebook, я пытаюсь использовать SDK Javascript поставщика для входа в систему, и HybridAuth «знает» об этом. Любая помощь будет оценена по достоинству.
Я начал с включения идентификаторов конфигурации в данные, которые я передаю в представление, чтобы я мог использовать их при вызове функций входа в систему Javascript. Поэтому в середине функции GetProviders класса Hybrid_Auth я добавил:
if(array_key_exists('keys', $params) && array_key_exists('id', $params['keys']))
$idps[$idpid]['id'] = $params['keys']['id'];
Мой Javascript включает в себя что-то вроде этого:
FB.init({
appId:'<?php echo $providers['Facebook']['id']; ?>',
cookie:true,
status : true,
xfbml:true
});
Все идет нормально.
Но после входа в систему (например, FB.login()), конечно, HybridAuth не знает и не имеет информации о пользователе.
Затем, чтобы «заставить» его, я попытался вызвать метод «.../hauth/login/Facebook» через Ajax:
$.ajax({
type: "POST",
url: ".../hauth/login/Facebook",
cache: false,
...
К сожалению, похоже, что ряд «перенаправлений» в HybridAuth делает это неработоспособным. Я даже добавил «данные: {ajax:true}» к вызову Ajax и попытался изменить HyrbidAuth, чтобы он не перенаправлял, если существует $_POST['ajax']. Это, похоже, тоже не помогло. (Я даже удалил «die ();» в конце функции redirect () безрезультатно.)
Я думаю, что либо на правильном пути, либо мне нужно добавить новый метод HybridAuth для обнаружения и сохранения данных для всех или конкретных уже существующих соединений.
Любые идеи?
Спасибо.