2014-02-14 82 views
1

我實施了一個omniauth策略作爲寶石,但意識到它只是oauth的基本實現。設計的通用omniauth供應商/策略

我在設計中配置。 RB是這樣的:

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

有沒有做到這一點的色器件,而無需創建寶石更簡單的方法,我能不能將其配置在conifg塊像

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

你能告訴我一個例子或指向正確的方向?我在網上看到的所有東西都是關於將其構建爲策略寶石。

回答

0

聽起來好像你已經從零開始寫了一個oauth策略,並將它打包成一個寶石。如果它只是你完全實施的oauth或oauth2策略,我認爲你不需要那樣做,或者創建一個gem。但是,我不確定是否有任何方法可以在配置塊中執行此操作。您應該可以通過使用https://github.com/intridea/omniauth-oauthhttps://github.com/intridea/omniauth-oauth2並使用README中所述的幾種方法創建子類來完成此操作。

我自己並沒有這樣做,但這是其他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,正如在「Creating a Strategy」中提到的:https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide