即使已经使用Facebook Javascript SDK连接,也可以始终询问用户

时间:2015-03-10 03:57:36

标签: c# facebook facebook-javascript-sdk facebook-login facebook-graph-api-v2.2

我有用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' });
            })
        }
    });

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

流程应该是这样的:

  1. 你应该有一个自定义的登录按钮(不是默认的fb-login按钮),不确定,但我猜你只使用自定义按钮。

  2. 点击后,使用FB.getLoginStatus()检查用户是否已连接。

  3. 如果是,请使用FB.logout()从Facebook注销用户,然后使用FB.login()

  4. 登录用户
  5. 如果没有,请使用FB.login()

  6. 登录用户

    <小时/> 的代码

    $('#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' });
    }