我启动了一个全新的 Rails 和 Facebook 应用程序,并严格按照本指南进行操作。
我可以看到正在创建一个用户,并且它甚至在身份验证后成为重定向的 current_user,但是,它不会持续存在。一旦我点击另一个控制器操作,它就会再次重定向并说我需要登录。
如果我认为其中任何一个有用,我会发布我的代码,但我的代码与您在此 wiki ( https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview ) 中看到的内容之间的唯一区别是过滤器和方法之前的 puts 语句。
我不是 100% 确定omniauthable 的设计是如何工作的,但我注意到在它的self.find_for_facebook_oauth
方法中,它接受 current_user 作为第二个参数并且从不在方法中使用它。此外,与其他身份验证解决方案不同,我没有看到它在任何地方检查现有用户会话,尽管我相信设计应该为您处理这个问题。
编辑
我现在很确定omniauthable
. 我刚刚将以下内容添加到我的OmniauthCallbacksController
def facebook
sign_in_and_redirect :user, User.first
end
本质上,这应该只登录第一个用户,而不管信息如何。它确实并将我重定向到欢迎控制器中的页面,但是,当我尝试点击该控制器中的其他操作时,我再次被告知我需要登录。我真的不知道 current_user 是如何迷路的.