加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 什么是omniauth和电子邮件密码注册最佳实践?

发布时间:2020-12-17 03:53:02 所属栏目:百科 来源:网络整理
导读:结合Facebook登录(比方说我会使用Omniauth gem)和电子邮件密码登录的最佳做法是什么? 我看了几个博客,看过Railscasts,我知道每个人都在使用Devise gem和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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读