2

我正在尝试将 cake php 与 Facebook PHP SDK 连接起来

在 App_Controller beforeFilter 函数中

$facebook = new Facebook(array(
      'appId'  => Configure::read("FB_APP_ID"),
      'secret' => Configure::read("FB_APP_SECRET"),
    ));

    // Get User ID
    $user = $facebook->getUser();
pr($user);
$logoutUrl = $facebook->getLogoutUrl();
$loginUrl = $facebook->getLoginUrl();

$this->set(compact('logoutUrl'));

在视图.ctp

<a href="<?php echo $logoutUrl; ?>">Logout</a>

在这里,我已经使用 facebook 登录了应用程序,但是当我尝试使用 logoutUrl 注销时,我总是在单击注销之前获得登录用户的用户 ID。

$user = $facebook->getUser();
// always get the user id.
pr($user);

为什么会发生这种情况,注销 url 是否不起作用?

4

2 回答 2

2

可能是注销按钮正在从 Facebook 中注销用户,而不是从您的应用程序中注销。

您必须使用$this->Auth->logout();从您的应用程序中注销用户。

于 2012-07-02T15:27:24.357 回答
0

Kachar 关于执行从 Facebook 而不是您的应用程序注销的 getLogoutUrl() 是正确的。不过,我找不到对该$this->Auth->logout();命令的任何引用。我发现我需要取消设置会话数据才能从我的应用程序中注销。

session_start();
session_unset(); // The important line, must be called after session_start()
session_destroy();
于 2013-02-23T14:13:14.107 回答