Ruby on rails OmniAuth open_id注销未按预期工作
我正在为我的rails应用程序使用“omniauth”和“omniauth openid”gem。登录按预期工作,它在从openId提供程序回调后创建一个新会话。问题在于注销 在我的控制器中,我有这个代码来破坏会话Ruby on rails OmniAuth open_id注销未按预期工作,ruby-on-rails,ruby-on-rails-4,session,omniauth,rails-authorization,Ruby On Rails,Ruby On Rails 4,Session,Omniauth,Rails Authorization,我正在为我的rails应用程序使用“omniauth”和“omniauth openid”gem。登录按预期工作,它在从openId提供程序回调后创建一个新会话。问题在于注销 在我的控制器中,我有这个代码来破坏会话 def destroy session.delete(:user) @current_user = nil redirect_to root_path end 我的注销路径正在调用此操作。当我注销时,我看到会话上的用户按预期设置为nil。现在,当我输入主页URL时,我的
def destroy
session.delete(:user)
@current_user = nil
redirect_to root_path
end
我的注销路径正在调用此操作。当我注销时,我看到会话上的用户按预期设置为nil。现在,当我输入主页URL时,我的助手方法正在检查用户是否已经登录,此时返回false,并按预期重定向到“/auth/open_id?origin=request.URL”。问题从这里开始,现在在我提供凭据之前,提供者发布回调并与同一用户创建新会话。我做错了什么?我正在使用Active record会话存储。找到了解决方案。我必须找到身份提供程序的注销URl,然后重置会话。我正在使用Active record会话存储。找到了解决方案。我必须找到身份提供者的注销URl,然后重置会话。