Php Facebook访问令牌/登录

Php Facebook访问令牌/登录,php,facebook-php-sdk,Php,Facebook Php Sdk,我正在尝试使用Facebook的OAuth令牌为我的站点编写自定义授权/取消授权脚本。我可以将令牌发布到我的数据库中,但是当我删除令牌并刷新页面时,它只会再次发布令牌,即使我没有单击“授权”链接 <div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px"> <?php $db_conx = mysqli_connect("localhost","root","

我正在尝试使用Facebook的OAuth令牌为我的站点编写自定义授权/取消授权脚本。我可以将令牌发布到我的数据库中,但是当我删除令牌并刷新页面时,它只会再次发布令牌,即使我没有单击“授权”链接

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>
My authorize.php:

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>

如果令牌仍然有效,Facebook将刷新令牌,您应使用官方方式:

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>

这是因为您只是将
fb\u令牌
更新为
blank
,而没有注销用户

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>
要获取注销URL,请执行以下操作:

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>
$params = array( 'next' => 'http://after_logout.lnk' );
$logout = $facebook->getLogoutUrl($params);
getLogoutURL()
采用可选的
$params
数组,其中包含键和值对:

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>
next
→ (可选)用户注销后重定向到的下一个URL(应为绝对URL)

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>

<div class="authorize_btn" style="float:right; margin-top:-35px; padding-right:10px">
<?php 
    $db_conx = mysqli_connect("localhost","root","","test");

    if (mysqli_connect_errno())
    { 
        echo mysqli_connect_error();
        exit();
    }

    $sql    = "SELECT fb_token FROM users";
    $user   = $_SESSION['username'];
    $query  = mysqli_query($db_conx, $sql);
    $row    = mysqli_fetch_array($query); 

    $login = $facebook->getLoginUrl();

    $access_token = $facebook->getAccessToken();

    $fb_token = $row[0];

    if (empty($fb_token))
    {

        $add_user = "<a href='$login'>Add User</a>";
        echo $add_user; 

        if ($add_user)
        {
            $sql = mysqli_query($db_conx, "UPDATE users SET fb_token='$access_token' where username='$user'");
        }

    }
    else 
    {
        echo "<form id='deauth' action='deauth_fb.php' method='post'>";     
        echo "<a href='#' onclick='document.forms[0].submit();'>Deauthorize User</a>";  
        echo "</form>";                                         
    }
?>
</div>