如何从会话中恢复许多提供程序?

时间:2015-12-22 07:26:40

标签: php mysql session restore hybridauth

我在数据库中有用户,注册了许多提供程序,并在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();
   }
}

0 个答案:

没有答案