繁体   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