2012-08-26 230 views
2

在註冊頁面中,我讓用戶選擇填寫大部分字段,讓他通過臉書登錄到我的網站,以便我可以訪問他的數據,然後填寫一些其他領域,然後註冊到我的網站。註冊並使用臉書登錄

在登錄頁面上,用戶可以選擇使用用戶名和密碼登錄,或使用他們之前註冊的Facebook帳戶登錄。

在登錄頁上我有這樣的代碼:

if ($user){ 
    try { 
     $loggedin= true; 
     $user_profile = $facebook->api('/me','GET'); 

     $login_url = $facebook->getLoginUrl(
            array(
            'scope' => 'publish_stream,read_friendlists,email' 
           ) 
          ); 

     if(email_exists($user_profile['email'])){ 
      $user = get_user_by('email', $user_profile['email']); 
      wp_set_auth_cookie($user->id); 
      wp_redirect(site_url()); exit; 
     }else{ 
      wp_redirect(site_url('/register/')); exit; 
     } 

    } catch (FacebookApiException $e) { 
     $login_url = $facebook->getLoginUrl(
            array(
            'scope' => 'publish_stream,read_friendlists,email' 
           ) 
          ); 
     $loggedin= false; 
     error_log($e->getType()); 
     error_log($e->getMessage()); 
    } 
}else{ 
    $login_url = $facebook->getLoginUrl(
            array(
            'scope' => 'publish_stream,read_friendlists,email' 
           ) 
          ); 
    $loggedin= false; 
} 

因此,如果用戶與Facebook登錄,代碼檢查,如果他是一個成員,如果是他的身份驗證和重定向到主頁,如果電子郵件不存在,他應該被重定向到註冊頁面。

問題是,如果用戶使用Facebook登錄到註冊頁面,登錄頁面代碼會將其識別爲登錄用戶,並且如果他是會員,則會授予他訪問權限,如果他不是會員,但是如果用戶想用另一個帳戶登錄怎麼辦?

我需要做的是在登錄頁面中終止訪問令牌,以便他可以用他的Facebook賬戶重新登錄。那可能嗎?

回答

3

閱讀此頁http://developers.facebook.com/docs/authentication/

註銷用戶的Facebook

,你可以通過重定向 用戶編程註銷用戶的Facebook來 https://www.facebook.com/logout.php?next=YOUR_REDIRECT_URL&access_token=USER_ACCESS_TOKEN

的URL提供在下一個參數中必須是一個具有與您的應用程序相同的基本域 的URL你的應用程序的設置。

您還可以使用 Javascript SDK通過呼叫FB.logout()將用戶從客戶端的Facebook註銷。