我正试图让我的注销按钮,以注销的应用程序和facebook的基础上,说明显示在铁路#360。当我点击它的时候,这个应用程序看起来是注销的,但是我的facebook会话仍然存在。每隔五次,用户就会从facebook注销一次。我怀疑这与调用FB.logout()函数时未销毁的facebook cookie有关,因为当我手动删除该cookie时,用户将被从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发布于 2012-08-06 19:44:20
修正这一点,增加如下:
def destroy
session[:user_id] = nil
sleep 3
redirect_to root_url
end到会话控制器
https://stackoverflow.com/questions/11676233
复制相似问题