我有一个将 Restful 身份验证作为身份验证插件的站点。我需要集成 Facebook 连接。Facebook 不为用户提供电子邮件地址(可能只有在用户同意的情况下),当然也不提供密码。
主要问题是 User 模型validates_**
在这两个字段上有很多(来自 Restful 身份验证模块)。另一个小问题是我们已经有很多依赖于电子邮件地址的代码(观察者在用户创建后发送电子邮件等)。facebook_connect 教程中的解决方案是绕过验证保存用户模型,但这是错误的..
您将如何重新设计用户模型以包含任何/两种身份验证方法(标准和/或 facebook_connect)?
重构所有验证(使用 :unless => :is_facebook_user),对观察者设置条件等。
在 User 表上实现 STI(并拥有 StandardUser / FacebookUser,每个都有自定义身份验证模块)
具有对 standard_user 和 facebook_user 的多态引用的用户表
其他想法
请注意,将“标准”帐户链接到“facebook”帐户的功能也是必需的,这使事情变得复杂。
参考:
http://crazyviraj.blogspot.com/2010/01/test-cases-for-basic-facebook-connect.html