簡體   English   中英

在Devise中加載自定義Omniauth提供程序的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM