equ*_*nt8 4 ruby ruby-on-rails authlogic devise omniauth
结合Facebook登录(假设我将使用Omniauth gem)和电子邮件+密码登录的最佳做法是什么?
我看了几个博客,看过Railscasts,我知道每个人都在使用Devise gem和Omniauth.但我正在寻找一些不同的观点.
子问题:
我正在考虑从头开始创建电子邮件+密码注册(不使用任何宝石,让它保持快速和轻便)所以你有什么建议吗?或者,如果你有特定的宝石,请让它快速.
你对Oauth2宝石(替代Omniauth)处理Facebook的身份验证有什么其他建议吗?
对不起,我在这里问这个基本问题,但我没有找到很多答案(我发现大部分都是基于Devise)
这就是我在Web上的大多数示例中看到它的方式

基本上,当您使用电子邮件+密码注册时,您将直接创建行到用户模型(不接触验证模型)和注册Omniauth时,而不是创建与用户模型通信的新身份验证.
基本上在下次登录时你会做这样的事情:
if (user.password == 'xxx')
login
elsif user.authentication.uid == 'xxx'
login
else
'hello signup !'
end
Run Code Online (Sandbox Code Playgroud)
因此,你在两个模型之间进行切换,并强奸(对不起这个术语)用户模型女巫应该只持有用户信息
在某种程度上,我认为解决方案是正确的(根据我的经验和与同事的讨论,但我仍然不能100%确定这是正确的答案)

正如你所看到的那样,即使用户+密码也会通过认证.model,这意味着站点用户+密码本身就是一个提供者
所以要绝对正确它应该是这样的
注册FB:将FB uid和authKey保存到认证表,然后创建用户
使用密码注册:在AppPass表中创建新行,然后在身份验证表中创建行(作为对提供者女巫的访问实际上是您的应用)并且您创建用户
为什么?
因为现在当用户登录时,总是会通过Authent.模型,在2个模型之间没有条件(认证和用户模型)
现在有人可以告诉我,......这是一个很好的方法:D?