Omniauth gem和Omniauth-Provider gem之间的区别是什么?

时间:2014-09-11 18:08:50

标签: omniauth omniauth-facebook

现在开始考虑身份验证,想知道来自Intridea的Omniauth与Omniauth-Facebook等所有单一提供商选项之间的区别。

在我看来,如果Omniauth允许多提供商,它也应该允许单一提供商,在这种情况下使用它几乎总是一个更好的选择,因为你永远不知道以后何时想要添加另一个提供商,而对于像Omniauth-Facebook这样的东西,如果您决定稍后添加其他东西,则必须回溯。

2 个答案:

答案 0 :(得分:1)

Omniauth是基础库,其他库(如omniauth-facebook)构建在其上,使用实际服务(如Facebook)提供身份验证。 Omniauth本身只提供名为Developer的虚假身份验证服务。您必须使用omniauth-facebook,omniauth-twitter等,具体取决于您希望用户使用哪种服务。你可以在同一个项目中使用尽可能多的东西 - 使用omniauth-facebook不会以任何方式限制你 - 想要twitter身份验证吗? - 只需将omniauth-twitter添加到您的Gemfile(对于rails / bundler项目)。

我认为omniauth的README在引言部分非常清楚:

https://github.com/intridea/omniauth

和omniauth github.io页面显示了在“入门”部分同时使用多个策略的Gemfile:

http://intridea.github.io/omniauth/

答案 1 :(得分:0)

OmniAuth是一个框架,允许您根据需要对许多身份提供者进行身份验证。您为要进行身份验证的每个提供程序创建或使用单独的“策略”。

因此,您将安装omniauth gem,然后为您想要使用的提供者安装任何策略性gem,例如omniauth-facebookomniauth-slack

OmniAuth提供了list of strategies,可与OmniAuth v1.0或更高版本一起使用。