1

これは私が理解しようとしてきた本当に苛立たしい問題(バグ?)です。多くの人が同じ問題について不平を言っているようですが、この問題を修正する明確な解決策やチュートリアルはありません。

とにかく、私の問題は、ユーザーがLogOutをクリックしたときに、SDKにユーザーを正常にログインさせることができることです。それらをリダイレクトしfacebook.com/home.php(「next」パラメーターが私のサイトに設定されている場合でも)、ユーザーが再び私のサイトにアクセスしてもログアウトされません...

これがコードです...(FacebookライブラリはCodeigniter構成を介して自動ロードされます)

public function DestroySession()
{
        $this->load->helper('url');

if($this->facebook->getUser())
{
    $this->facebook->destroySession();


    $logout = $this->facebook->getLogoutUrl(array("next" => "http://mysite.com/"));


    redirect($logout, 'location', 301);
}
 }

だから私はこれをようやく機能させました。以下に新機能を示します。いくつかの理由で、私はあなたがこれらのステップをしなければならないことについて完全に確信していません。

public function DestroySession()
{
    $this->load->helper('url');



//Get User ID
$user = $this->facebook->getUser();

if ($user)
{
    try
    {
        // Proceed knowing you have a logged in user who's authenticated.
       $user_profile = $this->facebook->api('/me');

   //   print_r($user_profile);
    } catch (FacebookApiException $e)
    {

        log_message('eror', $e);

        $user = null;
    }
}

// Login or logout url will be needed depending on current user state.
if ($user)
{
if( session_id() ){} else { session_start() ; }

    $logoutUrl = $this->facebook->getLogoutUrl($params = array('next' => base_url()));
    //echo 'Logout; '.($logoutUrl);
    $this->facebook->destroySession();
    redirect($logoutUrl, 'refresh');



}
}
4

2 に答える 2

1

私は次のようなリンクを使用してJavascriptを使用します。

<a href="/logout" onclick="FB.logout();">Logout</a> 

これは最初にonclick関数を呼び出し、Facebookでログアウトを実行し、次に私のサイトの通常の/logout関数が呼び出されます。サーバー側のソリューションも好みます。両方のサイトでログアウトします。

http://developers.facebook.com/docs/reference/javascript/FB.logout/を確認してください

于 2013-01-18T13:10:00.440 に答える
0

詳細については、私の元の質問を参照してください。

public function DestroySession()
{
    $this->load->helper('url');



//Get User ID
$user = $this->facebook->getUser();

if ($user)
{
    try
    {
        // Proceed knowing you have a logged in user who's authenticated.
       $user_profile = $this->facebook->api('/me');

   //   print_r($user_profile);
    } catch (FacebookApiException $e)
    {

        log_message('eror', $e);

        $user = null;
    }
}

// Login or logout url will be needed depending on current user state.
if ($user)
{
if( session_id() ){} else { session_start() ; }

    $logoutUrl = $this->facebook->getLogoutUrl($params = array('next' => base_url()));
    //echo 'Logout; '.($logoutUrl);
    $this->facebook->destroySession();
    redirect($logoutUrl, 'refresh');



}
}
于 2013-01-18T15:00:22.137 に答える