[英]Issues with loading custom Omniauth provider in Devise
我在設置與Devise一起使用的自定義OmniAuth策略時遇到問題。 我在這里使用以下gem,但不確定如何正確加載和使用此文件。
https://github.com/aereal/omniauth-xauth
基於自述文件,我創建了一個特定於我的提供程序的子類,我並不真正知道該文件的放置位置,因此根據本文將其放置在lib/strategies/myauth.rb
。 該文件看起來像這樣。 刪除提供程序特定的代碼。
module OmniAuth
module Strategies
class Myauth < OmniAuth::Strategies::XAuth
...
end
end
end
根據本文,我將以下代碼添加到config/initializers/omniauth.rb
module OmniAuth
module Strategies
module XAuth
autoload :myauth, Rails.root.join('lib', 'strategies', 'myauth')
end
end
end
我沒有添加如下代碼,因為我讀過,通過添加config.omniauth :myauth
在我的config/initializers/devise.rb
將加載它的照顧。 ??
Rails.application.config.middleware.use OmniAuth::Builder do
provider :myauth
end
我也將以下內容添加到我的user.rb
devise :database_authenticatable, :omniauthable, :omniauth_providers => [:myauth]
我還更新了config/initializers/devise.rb
config.omniauth :myauth, 'CKEY', 'CSEC', strategy_class => OmniAuth::Strategies::XAuth::Myauth
因此,當我嘗試運行rails s
會收到以下錯誤輸出。
`load_missing_constant': Unable to autoload constant Myauth, expected ...../PROJECT/lib/strategies/myauth.rb to define it (LoadError)
關於缺少什么的任何想法? 謝謝你的時間
您已經有了myauth.rb,因此不需要config / initializers / omniauth.rb文件。
您的策略類應包含以下內容:
config.omniauth :myauth, 'CKEY', 'CSEC', strategy_class => OmniAuth::Strategies::Myauth
只要Myauth類的內容正確,休息就應該起作用。
如果我誤解了您的問題並回答不正確,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.