现在才开始考虑身份验证,想知道来自 Intridea 的 Omniauth 与所有单一提供商选项(如 Omniauth-Facebook)之间的区别是什么。
在我看来,如果 Omniauth 允许多个提供者,它也应该允许单个提供者,在这种情况下使用它几乎总是一个更好的选择,因为您永远不知道以后何时要添加另一个提供者,而使用某些东西就像 Omniauth-Facebook 一样,如果您决定稍后添加其他内容,则必须回溯。
现在才开始考虑身份验证,想知道来自 Intridea 的 Omniauth 与所有单一提供商选项(如 Omniauth-Facebook)之间的区别是什么。
在我看来,如果 Omniauth 允许多个提供者,它也应该允许单个提供者,在这种情况下使用它几乎总是一个更好的选择,因为您永远不知道以后何时要添加另一个提供者,而使用某些东西就像 Omniauth-Facebook 一样,如果您决定稍后添加其他内容,则必须回溯。
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,在入门部分中同时使用了多种策略: