我正在使用' omniauth'和' omniauth-openid'我的rails应用程序的gem。登录按预期工作,它在从openId提供程序回调后创建一个新会话。问题在于注销。
在我的控制器中,我有这个代码来破坏会话。
def destroy
session.delete(:user)
@current_user = nil
redirect_to root_path
end
我的注销路线正在调用此操作。当我注销时,我看到会话中的用户按预期设置为nil。现在,当我输入主页URL时,我的帮助方法是检查用户是否已经登录,此时它返回false并重定向到' / auth / open_id?origin = request.url&#39 ;正如所料。问题从这里开始,在我甚至提供凭证之前,提供者POST回调并与同一用户创建新会话。我做错了什么?