ruby-on-rails – OAuth2和Omniauth之间的区别

我已经阅读了很多有关Omniauth和OAuth2的信息,以及Omniauth如何使用OAuth,但是我不太明白每个人的目标是什么.

例如,我知道,使用Omniauth,我可以回复发送参数

@auth[‘omniauth.params’]

但如果我使用OAuth,没有Omniauth,我可以做同样的吗?

我真正的问题是,我不明白他们之间的区别,Omniauth结束和OAuth开始,我可以用Omniauth做什么,这是不可能的OAuth.

解决方法

在这个答案中,我假设你正在使用Rails(或者其他一些基于框架的框架),因为没有这个Omniauth没有什么意义.

从OAuth2开始. OAuth是一个系统,用于在一个站点上使用其他站点上的身份验证来授权用户. OAuth本身描述了管理它的系统,但它并没有指定站点用来执行的代码. (这意味着,例如,一个基于PHP的网站可以使用一个基于Ruby的网站作为提供者,而不需要知道提供者背后的情况.)

这是Omniauth进入的地方.Omniauth是支持基于Rack的站点的分散身份验证的一个包. OAuth2是它支持的协议之一,它包含一个名为OAuth2的类,它是OAuth2规范的Ruby实现.您可以将Omniauth视为OAuth2上的一个包装器,它处理协议的细节,而不会太麻烦你.

您可以使用OAuth2 gem / class而不使用Omniauth,并处理您自己的OAuth2认证的具体细节,但我不知道为什么.

就Outhiauth而言,如果使用OAuth无法做到这一点,大部分内容都与其他非OAuth服务进行身份验证(Omniauth允许使用社区制定的“策略”进行身份验证,例如Stack Exchange).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...