1

我们使用 Devise + OmniAuth 作为身份验证机制,通过 facebook、twitter 和 openid 对用户进行身份验证。现在我们需要将 Refinery CMS 集成到我们现有的应用程序中。

要求: 应用程序首页有注册/登录按钮,带有一些静态内容。登录后,用户可以访问受限区域。我们想在受限页面上添加访问炼油厂 CMS 的链接。它不应该再次要求任何凭证。

我们按照以下链接集成炼油厂 CMS:

  1. http://refinerycms.com/guides/with-an-existing-rails-app
  2. http://refinerycms.com/guides/with-an-existing-rails-31-devise-app

现在启动服务器后,当我们点击 http://localhost:3000它时,它会重定向到http://localhost:3000/refinery/users/register. 用户应该能够看到包含公共内容的主页。只有在用户使用任何受支持的服务进行身份验证后,用户才能访问炼油厂 CMS(通过 /help)。

这是config/routes.rb的快照

mount Refinery::Core::Engine, :at => '/'
...
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", registrations: "registrations" }
....
root :to => "home#index"

配置/应用程序.rb

config.autoload_paths += Dir["#{config.root}/lib/**/"] # to load files from lib directory, including subfolders

    config.before_initialize do
      require 'refinery_patch'
      require 'restrict_refinery_to_refinery_users'
    end

    include Refinery::Engine
    after_inclusion do
      [ApplicationController, ApplicationHelper].each do |c|
        c.send :include, ::RefineryPatch
      end

      ::Refinery::AdminController.send :include, ::RestrictRefineryToRefineryUsers
      ::Refinery::AdminController.send :before_filter, :restrict_refinery_to_refinery_users
    end

我们是初学者。任何帮助都是不言而喻的。

4