簡體   English   中英

Facebook登錄,重定向循環

[英]Facebook login, redirection loop

我將Facebook登錄名添加到我的網頁中,但是首先遇到了以下問題:

//FACEBOOK LOGIN
if($_GET['method']=='facebook'){
    require("_facebook.php");
    $session_fb = $facebook->getSession();

    if(!empty($session_fb)) {
        //Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
        $uid = $facebook->getUser();
        $user = $facebook->api('/me');

        if(!empty($user)){
            //We have an active session, let's check if we have already registered the user
            $query = mysql_query("SELECT * FROM  ".PREFIX."user WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user['id']);
            $ds = mysql_fetch_array($query);
            //If not, let's add it to the database
            if(empty($ds)){
                $query = mysql_query("INSERT INTO ".PREFIX."user (oauth_provider, oauth_uid, username, email) VALUES ('facebook', {$user['id']}, '{$user['name']}', '{$user['email']}')");
                $query = mysql_query("SELECT * FROM ".PREFIX."user WHERE userID = " . mysql_insert_id());
                $ds = mysql_fetch_array($query);
            }
            // this sets variables in the session 
            $_SESSION['oauth_uid'] = $ds['oauth_uid'];
            $_SESSION['oauth_provider'] = $ds['oauth_provider'];

            $_SESSION['ws_auth'] = $ds['userID'].":".$ds['password'];
            $_SESSION['ws_lastlogin'] = $ds['lastlogin'];
            $_SESSION['referer'] = $_SERVER['HTTP_REFERER'];
            setcookie("ws_auth", $ds['userID'].":".$ds['password'], time()+($sessionduration*60*60));               
            $login = 1;

        }
        else {
            # For testing purposes, if there was an error, let's kill the script
            die("There was an error.");
        }
    }
    else {

        # There's no active session, let's generate one
        $login_url = $facebook->getLoginUrl();
        header("Location: ".$login_url);
    }

    //end fblogin
}

問題是我的代碼無法讀取會話,並導致無限循環的重定向:(

正如TommyBS所說,當前的php SDK中沒有getSession。

另外,請記住以下幾點:

1)在Facebook上您的應用程序配置中,“應用程序域”,“具有Facebook登錄名的網站”和“ Facebook /頁面標簽上的應用程序”(如果需要)URL字段應指向您要重定向的網站。

2)使用官方javascript sdk准備您的應用,不要忘記頻道文件。

3)使用適用於facebook iframe的正確P3P標頭准備您的應用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM