1

当用户尝试使用他们的 facebook 帐户登录我的网站时,我试图重定向到一个脚本,该脚本会根据我的数据库检查用户 ID 以查看他们是否已注册。当我单击登录时,它会打开一个 facebook 页面以使用 fb 凭据登录,然后只是重定向到 mywebsite 的主页,而不是运行检查用户与数据库的脚本。

这是我尝试登录的主页上的代码。

<?php
require '.../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'APP_ID',
  'secret' => 'SECRET',
  'cookie' => true,
));

//2. retrieving session
$session = $facebook->getUser();

//3. requesting 'me' to API
$me = null;
if ($session) {
    try {
       $uid = $facebook->getUser();
       $me = $facebook->api('/me');
    } catch (FacebookApiException $e) {
       error_log($e);
    }
}

//4. login or logout
if ($me) {
    $logoutUrl = $facebook->getLogoutUrl(array(
        'next'=>'http://.../logout.php'
    ));
} else {
    $loginUrl = $facebook->getLoginUrl(array(
       'next'=>'http://.../checkFBLogin.php'
    ));
}

?>

再往下:

<?php if ($me): ?>
    <a href="<?php echo $logoutUrl; ?>">Logout with Facebook</a>
<?php else: ?>
    <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
<?php endif ?>

在登录 Facebook 以检查他们是否已注册到我的网站之前,了解是否有办法检查我的数据库也会很有帮助。

4

1 回答 1

1

数组中键的名称不是它的redirect_url。

$loginUrl = $facebook->getLoginUrl(array(
       'redirect_url'=>'http://.../checkFBLogin.php'
    ));
于 2013-10-08T09:56:26.693 回答