У меня есть пользователь в базе данных, с зарегистрированными многими провайдерами и с сохраненными сессиями в MySQL. Мне нужно использовать getAdapter () на многих провайдерах, чтобы восстановить эти сеансы. Но это не работает. Hybridauth не восстанавливает всех провайдеров.
Но когда я использую authenticate () вместо getAdapter (), тогда autenthicate () выполняет свою работу. Но мне нужно использовать gedAdapter, потому что это быстрее.
$config = dirname(__FILE__) . '/library/hybridauth.php';
require_once( "library/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$current_user_id = $_COOKIE['user_id'];
$registered_providers = getRegisteredProviders(); // [Facebook => 1234567896, Twitter => 1234567, Google => 123456789]
$hybridauth_session_data = get_stored_hybridauth_session( $current_user_id );
$hybridauth->restoreSessionData( $hybridauth_session_data );
foreach ($registered_providers as $provider => $provider_id) {
try{
$adapter = $hybridauth->getAdapter( $provider );
$user_profile = $adapter->getUserProfile();
echo = $user_profile->identifier;
}
catch( Exception $e ){
echo "Ooophs, we got an error: " . $e->getMessage();
}
}
Задача ещё не решена.
Других решений пока нет …