0

C# で記述された MVC5 プロジェクトがあり、Facebook Javascript SDK を使用しています。Facebook を使用してログインするときに常にユーザーに尋ねることができるかどうか疑問に思っています。

シナリオ例:

ユーザー A が Facebook を使用して私のサイトにログインし、ログアウトしません。彼のセッションは私のサイトから期限切れになりましたが、彼の Facebook は引き続きログインします。ユーザー B は同じコンピューターを使用して Facebook を使用してログインします。ユーザー A は Facebook をログアウトしなかったため、ユーザー B はユーザー A の Facebook アカウントで自動的にログインします。次のようなものが必要です。 「これはあなたのFacebookアカウントですか?」ユーザーのログインを許可する前にプロンプ​​トを表示します。これは Facebook によって提供されますか? 私は周りを見回していますが、今のところ運がなく、「response.status」がすでに「接続」された後は「FB.login」を呼び出すことはできません。

私のコード:

FB.getLoginStatus(function (response) {
            if (response.status === 'connected') {
                $('#btnFBlogin').click(function () {
                    FB.api('/me', function (response) {

                    location.href = BASE_URL + 'Membership/LogInWithFacebook';
                });
            })
        } else {
            $('#btnFBlogin').click(function () {
                FB.login(function (response) {
                    if (response.status === 'connected') {
                        FB.api('/me', function (response) {
                            location.href = BASE_URL + 'Membership/LogInWithFacebook';
                        });
                    }
                }, { scope: 'email,user_birthday' });
            })
        }
    });

どんな助けでも大歓迎です。

4

1 に答える 1

0

フローは次のようになります。

  1. カスタマイズされたログイン ボタン (デフォルトの fb ログイン ボタンではない) が必要ですが、よくわかりませんが、カスタマイズされたボタンのみを使用していると思います。

  2. クリックすると、ユーザーが を使用して既に接続されているかどうかを確認しますFB.getLoginStatus()

  3. はいの場合、 を使用して facebook からユーザーをログアウトしFB.logout()、次に を使用してユーザーをログインします。FB.login()

  4. そうでない場合は、 を使用してユーザーをログインしますFB.login()


コード

$('#btnFBlogin').click(function () {
     FB.getLoginStatus(function (response) {
          if (response.status === 'connected') {
              FB.logout(function(response) {
                 Login();
              });
          }else{
              Login();
          }
     });
});

function Login(){
    FB.login(function (response) {
       if (response.status === 'connected') {
          FB.api('/me', function (response) {
             location.href = BASE_URL + 'Membership/LogInWithFacebook';
          });
       }
    }, { scope: 'email,user_birthday' });
}
于 2015-03-10T09:10:13.910 に答える