从Facebook注销的问题

时间:2014-05-01 09:24:23

标签: facebook facebook-php-sdk

我正在开发一个网络应用程序,让用户可以通过Facebook登录 流程是:
1.点击登录FB
2.登录FB
3.重定向回Web应用程序

出于安全考虑(应用程序将在客户商店的iPad上运行)我需要在收到FB的响应后立即从Facebook注销用户 - 该应用程序不再与FB API交互。)

用户登录FB后,会出现一个允许用户的批准对话框 1.授予对应用程序的访问权限 2.拒绝访问应用

然后,用户被重定向到处理响应的应用程序。

public function facebook()
{
    try {
        $fbUser = Faceoff::me();
        $user = UserCreator::withProfile( $fbUser );
        Auth::login($user);

        $url = Faceoff::getLogoutUrl(['next' => 'url to protected area']);
    } catch (\Exception $e) {
        $url = Faceoff::getLogoutUrl(['next' => 'url to login page']);
    }

    Faceoff::destroySession();
    return Redirect::to($url);
}

如果用户授予访问try阻止执行,如果用户拒绝访问catch阻止执行,则生成具有适当next参数的注销URL。
用户将被重定向到该注销URL。 到目前为止一切都很好。

问题是:如果用户未授予对应用的访问权限,我无法从FB注销用户。
但我可以,如果获得访问权限。

是否有解决方案,或者这是预期的行为?

PS-1:Faceoff只是Laravel的包装 PS-2:对不起这样的故事,我只需要你知道我想要达到的目标以及问题的起点。

感谢您提出可能导致解决方案的任何方向!

1 个答案:

答案 0 :(得分:1)

  

问题是:如果用户未授予对应用的访问权限,我无法从FB注销用户。    但我可以,如果获得访问权限。

     

是否有解决方案,或者这是预期的行为?

当然这是预期的行为,否则我访问的每个网站都可以让我退出FB,无论我是否希望这种情况发生 - 因此它需要一个活跃的用户访问令牌。


顺便说一句,让大量用户频繁登录非常有限的一组设备是不明智的 - 这很可能会引发Facebook的安全算法,这会让人觉得阴暗的事情正在发生...并且可能导致您的用户不得不回答其他安全问题,在自己的帐户中遇到其他麻烦,直到您的应用被阻止。

相关问题