我在数据库中有用户,注册了许多提供程序,并在MySQL中保存了会话。我需要在许多提供程序上使用getAdapter()来恢复此会话。但它不起作用。 Hybridauth不会恢复所有提供商。
但是当我使用带有getAdapter()的authenticate()时,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();
}
}