0

我有用 C# 编写的 MVC5 项目,我使用 Facebook Javascript SDK,我想知道是否可以在使用 Facebook 登录时始终询问用户。

示例场景:

用户 A 使用 Facebook 登录我的网站,但他没有注销。他的会话从我的网站过期,但他的 Facebook 仍将登录。用户 B 使用同一台计算机使用 Facebook 登录,由于用户 A 没有注销他的 Facebook,用户 B 将自动使用用户 A 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-login 按钮),但我猜您只是在使用自定义按钮。

  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 回答