【问题标题】:A generic omniauth provider/strategy for devise一个通用的omniauth提供者/设计策略
【发布时间】:2014-02-14 00:03:49
【问题描述】:

我将omniauth 策略作为gem 实施,但意识到它只是oauth 的基本实施。

我在设计中配置。 rb 像这样:

config.omniauth :mystrategy, 'key', 'secret'

有没有一种更简单的方法可以在不创建 gem 的情况下在设计中做到这一点,我可以在配置块中配置它吗

    config.omniauth :mystrategy do |strategy|
          strategy.key ='blah'
          strategy.authorize_path = 'blah'
    end

你能给我举个例子或指出正确的方向吗?我在网上看到的一切都是关于将其打造为战略宝石。

【问题讨论】:

    标签: ruby-on-rails ruby devise omniauth


    【解决方案1】:

    听起来您从头开始编写了一个 oauth 策略并将其打包为一个 gem。如果它只是您完全实施的 oauth 或 oauth2 策略,我认为您不需要这样做,或者创建一个 gem。但是,我不确定是否有任何方法可以仅在配置块中执行此操作。您应该可以通过使用https://github.com/intridea/omniauth-oauthhttps://github.com/intridea/omniauth-oauth2 并使用自述文件中描述的一些方法创建一个子类来实现。

    我自己没有这样做,但这是其他omniauth策略所采用的方法。例如,从它的超类可以看出,omniauth-twitter 基于omniauth-oauth 策略:

    https://github.com/arunagw/omniauth-twitter/blob/master/lib/omniauth/strategies/twitter.rb

    omniauth-facebook 基于omniauth-oauth2 策略:

    https://github.com/mkdynamic/omniauth-facebook/blob/master/lib/omniauth/strategies/facebook.rb

    只需在 Omniauth::Strategies 命名空间中定义您的类——例如Omniauth::Strategies::Mystrategy 应该足以让您在您的 omniauth 配置中将其称为 :mystrategy,如此处“创建策略”中所述:https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2015-12-22
      相关资源
      最近更新 更多