2011-01-25 98 views
1

客戶可以通過正常的登錄和Facebook連接登錄到我的網絡應用程序。到現在爲止還挺好。Facebook連接使用鏈接註銷

<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>             <div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
     FB.init({appId: '<xsl:value-of select="$FACEBOOK_APP_ID" />', status: true, 
       cookie: true, xfbml: true}); 
       FB.Event.subscribe('auth.login', function(response) { 
       window.location.reload(); 
     }); 
</script> 

但是,當他們來註銷時,我希望客戶點擊我的網站上的註銷鏈接。我如何以編程方式註銷Facebook連接?可能通過json後端?

我不希望客戶點擊Facebook按鈕註銷。

我嘗試了一些方法,例如:重置在我的網站創建的Facebook連接cookie,它的工作原理,但是當我第二次嘗試再次登錄Facebook時,它失敗。

我知道刪除的cookie註銷,根本就不是乾淨(FB autologoutlink=true仍表現出我還沒有註銷。)

我不能讓客戶點擊兩次退出,我希望他們能夠用我的web應用程序註銷鏈接作爲單個註銷控制器。

我正在使用ASP經典。任何解決方案

+0

你有沒有找到解決方案? – Serhiy 2012-01-22 13:45:36

回答

1

如果用戶通過Facebook登錄,當用戶註銷您的站點時調用此JS代碼段(取決於您如何實現註銷,一種可能的方式是使用onclick="",或者如果您重定向到「註銷「模板,包括它存在):

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({appId: 'YOUR_APP_ID', status: true, cookie: true, xfbml: true}); 
    FB.logout(function(response) {}); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
0

你可以使用這個簡單的代碼:

<div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
    FB.init({ 
     appId:'APPID HERE', cookie:true, 
     status:true, xfbml:true 
    }); 
    </script> 

這:

<fb:login-button autologoutlink="true" length="short" background="white" size="large" data-show-faces="true" perms="email,user_birthday,status_update,publish_stream">Login with Facebook</fb:login-button>