这是我在StackOverflow上的第一个问题!我四处搜索,似乎找不到其他人遇到这个问题,所以这里就是这样。
我正在使用Ruby on Rails和Devise + OmniAuth允许人们通过Facebook和&谷歌在我的网站上。这非常有效 - 用户可以完美地登录和注销,因此所有路线似乎都能正常工作。
然而,偶尔注销将无效 - 它会将我带到一个空白页面,返回网站后,我仍然会登录,并且无法退出。如果我尝试以隐身方式打开网站,或清除我的历史记录,那么这一切都会再次有效。
我猜测罪魁祸首是在cookie中 - 它保留了我的信息,所以它让我保持登录状态,即使我想退出。我是编程的新手,所以我不知道该去哪里解决这个问题。
感谢您的帮助!
答案 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)