在 Devise 中加载自定义 Omniauth 提供程序的问题
Issues with loading custom Omniauth provider in Devise
我在设置与 Devise 一起使用的自定义 OmniAuth 策略时遇到问题。我在这里使用以下 gem 但我不确定如何正确加载和使用此文件。
https://github.com/aereal/omniauth-xauth
根据 README,我创建了一个特定于我的提供者的子类,我真的不知道该把这个文件放在哪里,所以我把它放在这里 lib/strategies/myauth.rb
基于这个 article。该文件看起来像这样。删除提供商特定代码。
module OmniAuth
module Strategies
class Myauth < OmniAuth::Strategies::XAuth
...
end
end
end
基于此 article 我将以下代码添加到我的 config/initializers/omniauth.rb
module OmniAuth
module Strategies
module XAuth
autoload :myauth, Rails.root.join('lib', 'strategies', 'myauth')
end
end
end
我 没有 添加以下代码,因为我已经读到通过在我的 config/initializers/devise.rb
中添加 config.omniauth :myauth
将负责加载它. ??
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)
对我缺少的东西有什么想法吗?感谢您的宝贵时间
您不需要 config/initializers/omniauth.rb 文件,因为您已经有了 myauth.rb.
您的策略 class 应包含以下内容:
config.omniauth :myauth, 'CKEY', 'CSEC', strategy_class => OmniAuth::Strategies::Myauth
只要 Myauth class 的内容是正确的,其余的应该可以工作。
如果我误解了您的问题并回答错误,请告诉我。
我在设置与 Devise 一起使用的自定义 OmniAuth 策略时遇到问题。我在这里使用以下 gem 但我不确定如何正确加载和使用此文件。
https://github.com/aereal/omniauth-xauth
根据 README,我创建了一个特定于我的提供者的子类,我真的不知道该把这个文件放在哪里,所以我把它放在这里 lib/strategies/myauth.rb
基于这个 article。该文件看起来像这样。删除提供商特定代码。
module OmniAuth
module Strategies
class Myauth < OmniAuth::Strategies::XAuth
...
end
end
end
基于此 article 我将以下代码添加到我的 config/initializers/omniauth.rb
module OmniAuth
module Strategies
module XAuth
autoload :myauth, Rails.root.join('lib', 'strategies', 'myauth')
end
end
end
我 没有 添加以下代码,因为我已经读到通过在我的 config/initializers/devise.rb
中添加 config.omniauth :myauth
将负责加载它. ??
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)
对我缺少的东西有什么想法吗?感谢您的宝贵时间
您不需要 config/initializers/omniauth.rb 文件,因为您已经有了 myauth.rb.
您的策略 class 应包含以下内容:
config.omniauth :myauth, 'CKEY', 'CSEC', strategy_class => OmniAuth::Strategies::Myauth
只要 Myauth class 的内容是正确的,其余的应该可以工作。
如果我误解了您的问题并回答错误,请告诉我。