授权Facebook API时强制用户在Facebook上登录

时间:2014-01-20 09:18:36

标签: c# .net facebook-graph-api facebook-c#-sdk

我已经看到很多关于此的问题,但由于Facebook更新了他们的API,他们中的大多数已经过时了。

我有一个网站,人们可以通过将访问令牌存储在该用户上来将他们的帐户绑定到他们的Facebook帐户。哪个效果很好。

然而问题是我有一个选项,人们可以在共享计算机上当场将他们的Facebook连接到他们的帐户,人们可以来去。 但是通过在这台公共计算机上授权应用程序,他们也将自动登录到Facebook,因此任何人都可以访问Facebook,从而进入以前的人Facebook。 但问题还在于,下一个将自己的帐户绑定到Facebook的人会自动获得已经授权访问的先前人员,因为已经登录的用户已经授权该应用程序。

当他们按下绑定Facebook按钮时,有没有办法强制用户授权他们的Facebook?或者,在我们收到accessToken后,有没有办法从Facebook注销用户? 我在Twitter上遇到了同样的问题,但我会将其留给另一个问题。

事先谢谢。

2 个答案:

答案 0 :(得分:1)

您不需要编写代码。您可以在Facebook开发者控制台上找到解决方案。

  • 转到https://developers.facebook.com
  • 进入您的应用程序
  • 在右侧菜单中转到Facebook登录/设置
  • 设置为“是”选项强制Web OAuth重新认证

那很好!

答案 1 :(得分:0)

我找不到强迫人们登录的解决方案(问题是如果他们已经登录并且已经授权)但我使用javascript SDK注销用户,如果他已登录并且&如果他已登录但未经授权或未经授权,则他将至少获得登录表格 在连接到Facebook页面上,我运行了这个javascript,它将自动注销注册&授权这意味着登录他的Facebook帐户的下一个人现在将获得一个清晰的登录屏幕

window.fbAsyncInit = function() {
    FB.init({
        appId: 'AppIdStringHere',
      status     : true,
      xfbml      : true
    });
    FB.getLoginStatus(function (response) {
        if (response.status === 'connected')
        {
            //alert("Authorized");
            FB.login(function () {
                FB.logout(function (response) {
                });
            }, { scope: 'publish_actions' });
        }
        else if (response.status === 'not_authorized')
        {
            //alert("Logged in but not authorized");
        }
        else
        {
            //alert("Not logged in");
        }
    });
};

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/all.js";
     fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));