首页 > 解决方案 > 收到“未找到”。身份验证通道。带有命名空间控制器的 Devise omniauthable 错误

问题描述

在我尝试通过命名空间控制器使用 oauth 之前,我从未收到此错误 - 不确定这是巧合还是这里有问题。任何帮助表示赞赏!

以下是一些相关的代码片段。

路线.rb

devise_for :users,
            class_name: 'Accounts::User',
            path: 'accounts',
            controllers: {
              omniauth_callbacks: 'accounts/omniauth_callbacks',
              registrations: 'accounts/registrations'
            }

帐户/用户.rb

devise :database_authenticatable, :registerable,
        :recoverable, :rememberable, :validatable, :omniauthable,
        omniauth_providers: %i[facebook google_oauth2]

帐户/omniauth_callbacks_controller.rb

module Accounts
  class OmniauthCallbacksController < Devise::OmniauthCallbacksController
    def facebook
      sign_in user_from_auth_hash
      redirect_to root_url, notice: 'Facebook authentication successful.'
    end
  end
end

初始化程序/devise.rb

config.omniauth_path_prefix = '/accounts/auth'
config.omniauth :facebook, ENV['FACEBOOK_OAUTH_ID'],
  ENV['FACEBOOK_OAUTH_SECRET']

让我知道是否还有其他要添加的内容。谢谢!

标签: ruby-on-railsrubydeviseomniauth

解决方案


推荐阅读