2011-12-14 6 views
1

「私のローカルデータベースに登録されていないユーザー」を選択したソーシャルネットワーク(Facebook、twitter、windows live、linkedin、openidなど)にリダイレクトする必要があるときにHybridAuthに問題が発生します。 "許可"と "キャンセル"ページ!PHP HybridAuth:選択したソーシャルネットワークの「許可」ページにリダイレクトする方法は?

今まで私が起こってこのコードを持っている:

try { 
    // $via for instance can be: Twitter, Facebook, etc 
    $hybridauth = new Hybrid_Auth($myConfig); 
    $via = ucfirst($via); 
    $adapter = $hybridauth->authenticate($via); // from this line some redirecting accoures 

    if($hybridauth->isConnectedWith($via)){ 
     $user = $hybridauth->authenticate($via)->getUserProfile(); 
    } 

    $profile = Users::model()->findByAttributes(array(
     'networkName' => $via, 
     'networkId' => $user->identifier, 
    )); 

    if(!is_null($profile)) { 
     // do a login 
    } else { 
     // do a registration + login 
    } 
} catch(Exception $e) { 
    echo "Error: please try again!"; 
    echo "Original error message: " . $e->getMessage(); 
    die(); 
} 

私は私が私のポイントが明らかにされてきました願っています。この問題のすべての援助に感謝します!

答えて

1

私がやる方法は、プロバイダーとプロバイダーIDをデータベースに格納することです。これは、実装した方法と同様です。

ユーザーが存在しない場合は作成し、ユーザーをユーザープロファイルエディタにリダイレクトします。それ以外の場合は、メインページまたはダッシュボードにリダイレクトするだけです。

プロバイダデータには、基本プロファイルを作成するためのすべての必須フィールドがあります。それ以外のものが必要な場合は、フォームを使用してユーザーに登録を完了させるためのページにリダイレクトします。 SESSIONなどで必要なものを保管してください。セッションを維持するには、$ hybridauth-> restoreSessionData($ _ SESSION ['HYBRID'])を使用できます。

関連する問題