Fra*_*nez 18 ruby-on-rails oauth omniauth
我已经阅读了很多关于Omniauth和OAuth2的内容,以及Omniauth如何使用OAuth,但我并不了解每个内容的目标是什么.
例如,我知道有了Omniauth,我可以回复发送params
@auth [ 'omniauth.params']
但如果我使用OAuth,没有Omniauth,我可以这样做吗?
我真正的问题是我不明白它们之间的区别,Omniauth的结束和OAuth的开始,以及我可以用Omuth来做什么,这是OAuth无法实现的.
pjm*_*rse 24
在这个答案中,我假设你正在使用Rails(或其他一些基于Rack的框架),因为没有它,Omniauth没有多大意义.
从OAuth2开始.OAuth是一个系统,用于在一个站点上使用其在另一个站点上的身份验证来授权用户.OAuth本身描述了管理它的系统,但它没有指定站点用来执行它的代码.(这意味着,例如,基于PHP的站点可以使用基于Ruby的站点作为提供者,而不需要知道提供者幕后发生的事情.)
这就是Omniauth的用武之地.Omniauth是一个支持基于机架的站点中分散式身份验证的软件包.OAuth2是它支持处理此问题的协议之一,它包含一个名为OAuth2的类,它是OAuth2规范的Ruby实现.您可以将Omniauth视为OAuth2的包装器,它可以处理协议的详细信息,而不会过多地使用它们.
您可以在不使用Omniauth的情况下使用OAuth2 gem/class,并自行处理OAuth2身份验证的细节,但我不确定原因.
至于您可以使用OAuth无法实现的功能,其中大部分都是使用其他非OAuth服务进行身份验证(Omniauth允许使用社区构建的"策略"来验证例如Stack Exchange).
| 归档时间: |
|
| 查看次数: |
5021 次 |
| 最近记录: |