1

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

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

4

2 回答 2

1

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

我认为omniauth 的自述文件在介绍部分对此非常清楚:

https://github.com/intridea/omniauth

并且omniauth github.io 页面显示了一个Gemfile,在入门部分中同时使用了多种策略:

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

于 2014-10-12T20:31:37.880 回答
0

OmniAuth是一个框架,它允许您对任意数量的身份提供者进行身份验证。您为验证身份的每个提供者创建或使用单独的“策略”。

因此,您将安装omniauthgem,然后为您希望使用的提供者安装任何策略 gem,omniauth-facebook例如omniauth-slack

OmniAuth 提供了可与 OmniAuth v1.0 或更高版本一起使用的策略列表。

于 2019-07-08T02:45:54.123 回答