结合 Facebook 登录(假设我将使用 Omniauth gem)和电子邮件+密码登录的最佳实践是什么?
我看了一些博客,看了 Railscasts,我知道每个人都在使用 Devise gem 和 Omniauth。但我正在寻找一些不同的观点。
子问题:
我正在考虑从头开始创建电子邮件+密码注册(为此不使用任何 gem,让其保持快速和轻便),那么您对此有什么建议吗?或者,如果您有特定的宝石,请尽快。
对于处理 Facebook 身份验证的 Oauth2 gems(Omniauth 的替代方案),您还有其他建议吗?
很抱歉我在这里问这个基本问题,但我没有找到很多答案(我找到的大多数答案都是基于 Devise)
这就是我在网络上大多数示例中看到的完成方式
基本上,当您使用电子邮件+密码注册时,您将直接创建到用户模型的行(不触及 Authent. 模型),而在使用 Omniauth 注册时,您将创建与用户模型通信的新身份验证。
基本上在下次登录时你会做这样的事情:
if (user.password == 'xxx')
login
elsif user.authentication.uid == 'xxx'
login
else
'hello signup !'
end
所以你要在两个模型之间切换,并且强奸(抱歉这个词)用户模型女巫应该只保存用户信息
在某种程度上,我认为解决方案是正确的(根据我的经验和与同事的讨论,但我仍然不能 100% 确定这是正确的答案)
正如您所看到的,甚至用户+密码也会通过 Authen。模型,这意味着网站用户+密码本身充当提供者
so to be absolutly correct it should be look like this
与 FB 签约:将FB uid和authKey保存到身份验证表中,然后创建用户
使用密码注册:您在 AppPass 表中创建新行,然后在 Authentication 表中创建行(作为对提供商的访问实际上是您的应用程序),然后创建用户
Why?
因为现在当用户登录时,总是通过身份验证。模型,不在 2 个模型(身份验证模型和用户模型)之间建立条件
现在有人可以告诉我,...这是一个好方法吗:D?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)