2011-11-07 6 views
0

私は、このFacebookのログインコードテスト方法私はそれの外からFacebookにログインしていますか?

$app_id = "xxxxxxxxxxxxxx"; 
    $app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
    $my_url = "http://xxxxxxxxxxxxx"; 


    $code = $_REQUEST["code"]; 

    if(empty($code)) { 
    $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection 
    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" 
     . $_SESSION['state']; 

    echo("<script> top.location.href='" . $dialog_url . "'</script>"); 
    print_r($dialog_url); 
die(); 
    } 

    if($_REQUEST['state'] == $_SESSION['state']) { 
    $token_url = "https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) 
     . "&client_secret=" . $app_secret . "&code=" . $code; 

    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 

    $graph_url = "https://graph.facebook.com/me?access_token=" 
     . $params['access_token']; 

    $user = json_decode(file_get_contents($graph_url)); 
    echo("Hello " . $user->name ."<a href=event.php?app_id=".$app_id."&app_secret=".$app_secret."&code=".$code."&access_token=".$response."> Create Event</a>"); 
    } 
    else { 
    echo("The state does not match. You may be a victim of CSRF."); 
    } 

は、私はすでにFacebookのウェブサイトに接続されていた場合、それは、このページにログイン考慮テストすることができますか?ログインリンクが表示されていませんか?

答えて

-1

質問はかなり古いですが、同様の状況を見つけた人には答えが役立つかもしれません。私は、あなたが言うことを意味するものは、あなたがコードを正常にFacebookのアカウントにあなたをログオンしているかどうかを確認することです。

セキュリティ設定にはアクティブセッションが表示されるようになりました。いつアカウントにログインしたか、どこからログインしたかの情報が表示されます。最後の活動、現在のセッションのログアウト最後に&を持つすべてのセッションのログアウトされ、その後、コードを実行し、あなたが何ができるか

Account Settings > Security > Active Sessions 

:それは下にあります。ブラウザ(または別のデバイスですが、ブラウザまたは別のブラウザを使ってログインしても問題ありません)を使用してログインし、アクティブなセッションがあるかどうかを確認します。

+0

質問には答えません。ユーザーがすでに接続されている場合、ログインリンクを表示しないようにアプリ内でユーザーのログインステータスを確認する方法を知りたがっていました。 – CBroe

関連する問題