我启动了一个全新的Rails和Facebook应用程序,并严格遵循这个guide。
我可以看到,正在创建一个用户,它甚至在身份验证后成为重定向的current_user,但是,它并不持久。只要我点击另一个控制器操作,它就会再次重定向,并告诉我需要登录。
如果我认为我的代码有用,我会把它贴出来,但我的代码与您在此维基( https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview )中看到的代码之间的唯一区别是在前面的puts语句、过滤器和方法。
我不能百分之百地确定如何设计使用omniauthable,但我确实注意到在它的self.find_for_facebook_oauth方法中,它接受current_user作为第二个参数,并且从不在方法中使用它。此外,与其他身份验证解决方案不同的是,我不认为它会在任何地方检查现有的用户会话,尽管我相信devise应该会为您解决这一问题。
编辑
我现在很确定omniauthable出了什么大问题。我刚刚将以下内容添加到我的OmniauthCallbacksController中
def facebook
sign_in_and_redirect :user, User.first
end本质上,这应该只登录第一个用户,而不考虑信息。它会这样做,并将我重定向到欢迎控制器中的一个页面,然而,当我尝试点击该控制器中的其他操作时,我再次被告知需要登录。我真的不知道current_user是怎么迷路的。
发布于 2012-07-02 22:19:08
关于如何使用Devise的omniauthable模块的资源非常少。您可能想看看https://gist.github.com/993566和http://edmiston.id.au/post/9204306833/omniauthable-my-version。维基缺少一些细节。
发布于 2012-07-02 20:15:16
很抱歉我不能回答你的问题,但也许你可以去http://railscasts.com/看看,有几个很棒的视频教程。
https://stackoverflow.com/questions/11286292
复制相似问题