1

フロントエンドでFacebookのjavascriptSDKを使用しています:

jQuery("#pct_fbbutton").live("click",function(){
        FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            console.log('Conected');
            FB.api('/me/likes', function(response) { user_likes = response;
            FB.api('/me', function(response)       { user       = response; 
                send_server(user, user_likes);
            });
            });

        } else if (response.status === 'not_authorized') {
            console.log('not_authorized');
            login();
        } else {
            console.log('not_logged_in');
            login();
        }
    });
});

ご覧のとおり、ユーザーがfacebookでログインした後、AJAXを介して2つのオブジェクトをphpスクリプトに送信します(関数send_serverを使用)。

$ facebook-> getAccessToken()を使用して、現在生成されているトークンにバックエンドでアクセスできますが、これはjavasript sdkによって作成されたCookieから取得されます。これは、すべてのフロントエンドデータがハッキングされる可能性があることを考慮して、トークンを使用してユーザーデータがphpで有効であること?

4

2 に答える 2

0

バックエンドで access_token を取得したら、ユーザーのプロファイルを取得してみてください。フェッチが成功した場合、クライアントは正しい access_token を提供したので、それを保存する必要があります。以下の例のようなものが機能するはずですが、さらに多くの例を見つけることができます。

<?php

$facebook = new Facebook(array(
    'appId'  => $initMe["appId"],
    'secret' => $initMe["appSecret"],
));

$facebook->setAccessToken($initMe["accessToken"]);
$user = $facebook->getUser();

if ($user) { 
   $user_profile = $facebook->api('/me');
   print_r($user_profile);
}
?>
于 2013-01-15T09:50:37.577 に答える
0

答えは、JavaScript ではなく PHP を使用してグラフ呼び出しを実行することです。特に、クライアント側スクリプトの唯一の目的がサーバーに送信することである場合はそうです。

サーバー上でデータ収集を行うことは、データが改ざんされていないことを確認できる唯一の実用的な方法です。ただし、適切な https 証明書チェックを行うことを前提としています。

提供された access_token 値が無効な場合、Facebook はエラーを返すため、アクセス トークンの有効性も簡単です。

于 2013-01-15T09:36:44.137 に答える