ruby-on-rails – 什么是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 所以你在2个模型之间进行切换,并且强奸(对不起这个术语)用户模型女巫应该只持有用户信息 在某种程度上,我认为解决方案是正确的(根据我的经验和与同事的讨论,但我仍然不能100%确定这是正确的答案) 正如你所看到的,甚至用户密码也会通过认证. model,这意味着站点用户密码本身就是一个提供者 所以要绝对正确它应该是这样的 >场景1 注册FB:将FB uid和authKey保存到认证表,然后创建用户 >场景2 使用密码注册:在AppPass表中创建新行,然后在身份验证表中创建行(作为访问提供者女巫实际上是您的应用程序)而不是您创建用户 为什么? 因为现在当用户登录时,总是会通过Authent.模型,在2个模型之间没有条件(认证和用户模型) 现在有人可以告诉我,……这是一个很好的方法:D? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |