gpt4 book ai didi

ruby-on-rails - Omniauth-facebook 并不总是注销用户

转载 作者:行者123 更新时间:2023-12-02 02:13:30 24 4
gpt4 key购买 nike

我正在尝试让我的注销按钮根据 railscast #360 中显示的说明注销应用程序和 facebook。当我点击它时,该应用程序似乎已注销,但我的 Facebook session 仍然存在。每隔五次,用户就会退出 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

最佳答案

通过添加修复此问题:

  def destroy
session[:user_id] = nil
sleep 3
redirect_to root_url
end

到 session Controller

关于ruby-on-rails - Omniauth-facebook 并不总是注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com