要求拒绝fb js sdk的权限

时间:2014-05-26 10:19:52

标签: javascript facebook sdk

我使用FB.getLoginStatus()检查登录信息,以便在需要时显示授权对话框。
在这种情况下,如果用户从下面的屏幕取消选中电子邮件,屏幕将不会尝试通过显示对话框重新询问用户,并且调用FB.login将导致警告用户已经过身份验证。有一种方法可以将带有recheck选项的范围传递给FB.getLoginStatus()吗?或任何其他解决方案让我走上正轨

function checkLoginState() {
    FB.getLoginStatus(function (response) {
        //console.log('statusChangeCallback');
        //console.log(response);
        if (response.status === 'connected') {
            // Logged into your app and Facebook.
            LogUserIn();
        } else if (response.status === 'not_authorized') {
            //console.log('you must authorize the app');
            alert(message);
        } else {
            //console.log('Please log into Facebook.');
        }
    });
}



auth dialog

2 个答案:

答案 0 :(得分:6)

来自facebook文档:

可以让某人一次授予他们拒绝的应用权限。你应该有一个教育屏幕,说明为什么你认为他们应该给你许可,然后重新询问。但是,如果您使用[上一节]中描述的方法(#rebootation-permissions-dialog),登录对话框将不会要求该权限。

这是因为一旦有人拒绝了权限,登录对话框就不会重新询问它们,除非您明确告诉对话框您要求拒绝许可。

您可以通过将auth_type:rerequest标志添加到FB.login()调用来执行此操作:

FB.login(
  function(response) {
    console.log(response);
  },
  {
    scope: 'user_likes',
    auth_type: 'rerequest'
  }
);

答案 1 :(得分:0)

查看https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.0,特别是重新询问拒绝权限部分