当前位置:  开发笔记 > 编程语言 > 正文

如何使用PHP和Zend中的Facebook Connect注销用户?

如何解决《如何使用PHP和Zend中的FacebookConnect注销用户?》经验,为你挑选了1个好方法。

我正在尝试使用PHP和Zend Framework构建一个Connect应用程序.我还有一个基于Zend_Auth的用户身份验证系统.现在,我可以使用Facebook登录但注销不起作用.

我需要清除Zend_Auth身份以及删除所有Facebook登录信息.最好的方法是什么?

facebook_client->expire_session()和他们facebook_client->clear_cookie_state();一起努力,并且facebook_client->logout($next)在打电话之后Zend_Auth::getInstance()->clearIdentity()

他们似乎都没有工作.



1> typeoneerror..:

你必须调用JavaScript客户端退出第一,然后将它们发送到你的PHP脚本注销.所以,调用.js:

FB.Connect.logoutAndRedirect("/path/to/zend/logout/controller");

你会看到一个模态弹出窗口,上面写着"你正在退出这个站点和facebook*你将被重定向到你的注销脚本所在的位置:

try
{
    $facebook->expire_session();
}
catch (FacebookRestClientException $e)
{
    //you'll want to catch this
    //it fails all the time
}

我通常也在PHP注销脚本中调用此函数,只是为了安全:

/**
 * Remove the local Facebook cookies that get set manually
 * 
 * @return void
 */
protected function _killFacebookCookies()
{
    // get your api key
    $apiKey = $this->getConfig()->getApiKey();
    // get name of the cookie
    $cookie = $this->getConfig()->getCookieName();

    $cookies = array('user', 'session_key', 'expires', 'ss');
    foreach ($cookies as $name) 
    {
        setcookie($apiKey . '_' . $name, false, time() - 3600);
        unset($_COOKIE[$apiKey . '_' . $name]);
    }

    setcookie($apiKey, false, time() - 3600);
    unset($_COOKIE[$apiKey]);       
}

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有