0

既に Facebook にログインしているユーザーがアカウントからアプリを削除した場合、ユーザーが既にログインしているため、アプリに再度アクセスしたときにのみ、publish_stream を要求するにはどうすればよいですか?

ありがとう。

    FB.getLoginStatus(function (response) {
            if (response.status === 'connected') {
                // the user is logged in and has authenticated your
                // app, and response.authResponse supplies
                // the user's ID, a valid access token, a signed
                // request, and the time the access token 
                // and signed request each expire
                uid = response.authResponse.userID;
                accesstoken = response.authResponse.accessToken;
                SrReferral = '@ViewBag.Referral';
                window.fbuserid = uid;
                var postData = { facebookUID: uid, facebookAccessTok: accesstoken, facebookSrReferral: SrReferral };
                $.ajax({
                    url: '@Url.Action("DisplayGolfers")',
                    type: 'POST',
                    data: postData,
                    dataType: 'html',
                    success: function (responseText) {
                        $("#container").html(responseText);
                    }
                });
            } else if (response.status === 'not_authorized') {
                // the user is logged in to Facebook, 
                // but has not authenticated your app 
            } else {
                // the user isn't logged in to Facebook.
                window.FB.login(function (response) {
                    if (response.authResponse) {
                        uid = response.authResponse.userID;
                        accesstoken = response.authResponse.accessToken;
                        SrReferral = '@ViewBag.Referral';
                        window.fbuserid = uid;
                        var postData = { facebookUID: uid, facebookAccessTok: accesstoken, facebookSrReferral: SrReferral };
                        $.ajax({
                            url: '@Url.Action("DisplayGolfers")',
                            type: 'POST',
                            data: postData,
                            dataType: 'html',
                            success: function (responseText) {
                                $("#container").html(responseText);
                            }
                        });
                    } else {
                        console.log('User cancelled login or did not fully authorize.');
                        alert('User cancelled login');
                    }
                }, { scope: 'publish_stream' });
            };
        });
    }  
4

1 に答える 1

0

私はあなたの質問を誤解しているようで、ユーザーが Facebook のアカウントからアプリケーションを削除した場合でも、ユーザーがログインしたままにしたい. これは本当に悪いことであり、簡単にセキュリティの問題になる可能性があります。

ユーザーがアプリケーションを削除したら、ログインしてはいけません!

次回アプリにアクセスする前にユーザーに許可を求めたくない場合は、「次回」とは何か (時間/日/ブラウザーセッション/など) を定義し、いくつかの cookie/ を設定する必要があります。それがプロンプトを表示する正しい時間であるかどうかをすべての訪問を確認するセッション。


2 番目のパラメーターを使用しFB.getLoginStatusて、ユーザーの最新のステータスを常に取得できます (connectedアプリを削除したユーザーには返されません)。

FB.getLoginStatus(function(response) {
  // this will be called when the roundtrip to Facebook has completed
}, true);

ドキュメントの「Facebook のサーバーへのラウンドトリップ」セクションを参照してください。FB.getLoginStatus

于 2012-09-23T11:52:49.747 に答える