ERRoR - Omniauth - 偶尔无法退出 - Cookies?

时间:2014-08-13 04:12:36

标签: ruby-on-rails devise omniauth authentication

这是我在StackOverflow上的第一个问题!我四处搜索,似乎找不到其他人遇到这个问题,所以这里就是这样。

我正在使用Ruby on Rails和Devise + OmniAuth允许人们通过Facebook和&谷歌在我的网站上。这非常有效 - 用户可以完美地登录和注销,因此所有路线似乎都能正常工作。

然而,偶尔注销将无效 - 它会将我带到一个空白页面,返回网站后,我仍然会登录,并且无法退出。如果我尝试以隐身方式打开网站,或清除我的历史记录,那么这一切都会再次有效。

我猜测罪魁祸首是在cookie中 - 它保留了我的信息,所以它让我保持登录状态,即使我想退出。我是编程的新手,所以我不知道该去哪里解决这个问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

原来它与cookie无关 - Devise使用https,所以如果我回到只有http的页面并尝试注销,它会尝试对https执行GET请求,即使没有(否则它只是正常发出默认的DELETE请求。)

我通过这个堆栈溢出问题找出了答案:Devise No route matches [GET] "/users/sign_out" from link with delete specified

我使用了Chris Chattan的第一个答案,但也有其他可能适合你的答案(如果你愿意,可以只使用https)