Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails OmniAuth open_id注销未按预期工作_Ruby On Rails_Ruby On Rails 4_Session_Omniauth_Rails Authorization - Fatal编程技术网

Ruby on rails OmniAuth open_id注销未按预期工作

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时,我的

我正在为我的rails应用程序使用“omniauth”和“omniauth openid”gem。登录按预期工作,它在从openId提供程序回调后创建一个新会话。问题在于注销

在我的控制器中,我有这个代码来破坏会话

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,然后重置会话。