1

我启动了一个全新的 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 是如何迷路的.

4

2 回答 2

1

抱歉,我无法回答您的问题,但也许您应该查看http://railscasts.com/,关于 facebook 集成的视频教程很少。

于 2012-07-02T12:15:16.023 回答
1

关于如何使用 Devise 的omniauthable 模块的资源很少。您可能想看看https://gist.github.com/993566http://edmiston.id.au/post/9204306833/omniauthable-my-version。wiki 缺少一些细节。

于 2012-07-02T14:19:08.183 回答