3
我試圖讓我的註銷按鈕從基於railscast#360中顯示的說明註銷應用程序和Facebook。當我點擊它時,應用程序似乎要註銷,但我的Facebook會話仍然存在。每五次一次,用戶註銷Facebook。我懷疑這跟在調用FB.logout()函數時未被銷燬的facebook cookie有關,因爲當我手動刪除該cookie時,用戶將從Facebook註銷。也許這是一個時間問題,因爲這是異步的?有什麼建議麼?下面是相關代碼:Omniauth-Facebook並不總是註銷用戶
application.html.erb
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '(**myappid**)', // App ID
status : true, // check login status
cookie : true // enable cookies to allow the server to access the session
});
$('#sign_in').click(function(e) {
e.preventDefault();
return FB.login(function(response) {
if (response.authResponse) {
return window.location = '/auth/facebook/callback';
}
});
});
return $('#sign_out').click(function(e) {
FB.getLoginStatus(function(response) {
if (response.authResponse) {
return FB.logout();
}
});
return true;
});
};
</script>
sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
end
不,它不會註銷。一旦我們登錄,我們必須打開facebook.com並執行登出登出。 – rAzOr 2014-10-14 13:07:30