HybridAuth авторизация через Facebook - Facebook returned an invalid user id

Главные вкладки

Аватар пользователя Silinix Silinix 7 декабря 2013 в 23:09

Привет!

Устанавливаю на сайт hybrid auth. Удалось настроить авторизацию через все необходимые социальные сети ,кроме одного.

Facebook. Не удается зайти на сайт через фейсбук ,также нельзя подключить к имевшимся профилю аккаунт фейсбук.

Уходит запрос в фейсбук, ввожу логин и пароль аккаунта в фейсбук и далее перенаправляет обратно на сайт, скрипт выдает (как и в других случаях авторизации через другие соц.сети) сообщение Closing... И вот ты уже на сайте, но вход на сайт не производится и никаких сообщений ошибок не выдает.

Что вы думаете по данному поводу?

«Да, дурак в журнал не заглянул. Ошибка: Facebook returned an invalid user id.»

Комментарии

Аватар пользователя Silinix Silinix 26 декабря 2013 в 0:38

Exception: Authentication failed! Facebook returned an invalid user id. в функции Hybrid_Auth::initialize() (строка 147 в файле /home/u441301227/public_html/sites/all/libraries/hybridauth/hybridauth/Hybrid/Auth.php).

Местоположение http://infotehnika.w/hybridauth/window/Facebook?destination=user/1/hybri...

Перерыл весь гуглик (В Яндексе как ни странно мало результатов) так и ответа не нашел.

Ради интереса обобщу решения и разных источников:

1. Обновить все библиотеки, а также сам модуль (В моем случае все самое свежее)

2. "base_url" => "http://localhost/hybridauth-git/hybridauth/", последний слеш надо убрать ,или ,что лучше
поправить Provider-Adapter.php

Строка 131
$this->params["login_done"] = $HYBRID_AUTH_URL_BASE . ( strpos( $HYBRID_AUTH_URL_BASE, '?' ) ? '&' : '?' ) . "hauth.done={$this->id}";

заменить на

$dlm = $this->id == "Facebook" ? "/?" : "?";

$this->params["login_done"] = $HYBRID_AUTH_URL_BASE . ( strpos( $HYBRID_AUTH_URL_BASE, $dlm ) ? '&' : $dlm ) . "hauth.done={$this->id}";

3. Увеличить время таймаута в файле base-facebook.php.

/**
* Default options for curl.
*/
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.2',
);

4. Или отключить проверку сертификата

public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.1',
CURLOPT_SSL_VERIFYPEER => false
);

Вот и собственно все ,что мог я найти в сети. А собственно моего решения так и не нашлось.

Аватар пользователя Websaytov Websaytov 31 декабря 2013 в 7:09

У меня когда через вконтакте также пытаюсь также происходит, причем другой человек со своей страницы и другого компа заходит. Facebook тоже глючит, пару раз зашел нормально потом начал выдавать сообщение "" URL не соответствует настройкам приложения: Один или несколько из указанных URL-адресов заблокированы настройками приложения. Адрес должен совпадать с адресом веб-сайта или адресом холста, или же домен должен являться поддоменом одного из доменов приложения.""

Аватар пользователя Silinix Silinix 2 января 2014 в 2:23

Перехожу на другой домен. Разом есть надежда ,что и фейсбук встанет на мою сторону ,так как все аппликаций буду настраивать заново.