[英]Facebook Graph API with Rails and Authlogic - preferred methodology?
有很多Facebook + Rails解决方案,最著名的是Facebooker,但是这个和其他很多都与Rails 3不兼容。我目前正在使用Authlogic对我的应用程序进行身份验证,我想为用户提供Facebook登录选项我想找到使FB和Authlogic一起使用的最佳方法; 现在,我只是为Facebook编写自己的Authlogic插件,但是如果已经完成,那么我就不想重做别人的工作。 有人知道这样的事吗?
该区域似乎变化很大。 我很难用Rails 3来设置它,因为主要的Ruby facebook库都还没有为此正式更新,也没有最新的文档记录。
我使用Rails 3的方法是使用Facebooker2和Mogli。 我基本上采用了此处发布的mogli + authlogic oauth控制器代码,并将其与Facebooker2的控制器和助手方法结合在一起。 没有关于Facebooker2和Mogli的文档(据我所知),但是Facebooker2的代码相对简单。
我还必须手动处理一些authlogic验证,以使它们仅针对非Facebook注册触发。 这是用户模型中所有特定于authlogic的代码:
class User < ActiveRecord::Base
acts_as_authentic do |config|
config.validate_email_field = false
end
validates_length_of :email, :within => 6..100, :if => :is_not_fb_user?
validates_format_of :email, :with => Authlogic::Regex.email, :if => :is_not_fb_user?
validates_uniqueness_of :email, :if => :is_not_fb_user?
def is_fb_user?
return false if self.fb_uid.blank? || self.fb_uid == 0 || self.fb_at.blank?
return true
end
def is_not_fb_user?; !self.is_fb_user? end
def require_password?
if self.is_fb_user?
false
else
new_record? || password_changed? || send(crypted_password_field).blank?
end
end
end
可能存在一些错误,我怀疑有更好的方法来解决此问题。
一位朋友为我们的应用程序开发了该gem,因此也许对您的应用程序也很有用: http : //github.com/pfracarolli/facebook-graph 。
使用Omniauth。 关于这个问题有一个讽刺。 我相信他甚至将它与Authlogic结合使用:
http://railscasts.com/episodes/235-omniauth-part-1
只需几行到您的SessionsController,以及config / initializers / omniauth.rb中一个配置文件中的几行,您或多或少就完成了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.